case_sensitive(适用于模型)

本页面引用了模型中的 case_sensitive 参数。

case_sensitive 也可以用作“探索”的一部分,如case_sensitive(适用于探索)文档页面所述。

case_sensitive 也可以用作维度或过滤条件字段的一部分,如 case_sensitive(针对字段)文档页面所述。

用量

case_sensitive:
层次结构
case_sensitive
默认值
yes(如果数据库方言支持参数)

接受
布尔值(yesno

定义

case_sensitive 可确定对于给定模型,过滤条件是否被视为区分大小写。与模型相关的所有过滤条件都会受到影响,包括在“探索”界面、信息中心界面、过滤条件字段或指标的 filters 参数中添加的过滤条件。

case_sensitive 的工作方式是调整 Looker 生成的 SQL 的 WHERE 子句。当 case_sensitive: yes 时,过滤条件使用 =LIKE 表示,例如:

WHERE name = 'bob'
WHERE name LIKE '%bob%'

case_sensitive: no 时,过滤条件使用 ILIKE(或等效项)表示,例如:

WHERE name ILIKE 'bob'

大多数 SQL 方言都支持 case_sensitive。但是,如果您的 SQL 方言不支持 case_sensitive 参数,则大小写区分选项取决于您的数据库设置,该设置通常不区分大小写下文列出了方言支持。

示例

使模型的所有过滤条件都区分大小写:

connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: yes
explore: explore_name {...}

使模型中的所有过滤条件都不区分大小写:

connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: no

常见挑战

某些 SQL 方言不支持 case_sensitive

为了让 Looker 在 Looker 项目中支持 case_sensitive,您的数据库方言也必须支持它。下表显示了最新版 Looker 中支持 case_sensitive 的方言:

DataVirtuality 提供了一个连接到各种数据库方言的语义数据层。如果 Looker 支持对底层方言使用 case_sensitive,则 Looker 支持对连接到这些方言的 DataVirtuality 使用 case_sensitive

注意事项

您可以在 MySQL 中创建区分大小写的搜索

在 MySQL 中,无需使用 case_sensitive 参数即可创建区分大小写的搜索。在 MySQL 中,某些数据类型(称为二进制字符串)会将文本存储为一系列数字。文字的大小写决定了所使用的数字。因此,如果您将文本转换为二进制字符串,可以执行区分大小写的搜索。例如:

dimension: will_NOT_be_case_sensitive {
  sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
  sql: CAST(${TABLE}.something AS BINARY) ;;
}