本页面引用了模型中的
case_sensitive
参数。
case_sensitive
也可以用作“探索”的一部分,如case_sensitive
(适用于探索)文档页面所述。
case_sensitive
也可以用作维度或过滤条件字段的一部分,如case_sensitive
(针对字段)文档页面所述。
用量
层次结构
case_sensitive |
默认值
yes (如果数据库方言支持参数)接受
布尔值(yes 或 no )
|
定义
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) ;;
}