本页中提及的
case_sensitive
参数是探索的一部分。
case_sensitive
也可用作模型的一部分,如case_sensitive
(适用于模型)参数文档页面所述。
case_sensitive
也可以用作维度的一部分,如case_sensitive
(针对字段)参数文档页面中所述。
用量
case_sensitive: 是
}
层次结构
case_sensitive |
默认值
yes (如果数据库方言支持参数)接受
布尔值(yes 或 no ) |
定义
case_sensitive
用于确定在给定的探索中,过滤器是否会将区分大小写。与“探索”功能相关的所有过滤条件(包括在“探索”界面、信息中心界面和 filters
参数中添加的过滤条件)都会受到影响。
默认情况下,case_sensitivity
已开启,并且过滤器区分大小写。但是,如本页面上的某些 SQL 方言部分所述,某些方言不支持此参数,如case_sensitive
所述。
case_sensitive
的工作方式是调整 Looker 生成的 SQL 的 WHERE
子句。当 case_sensitive
处于开启状态时,过滤条件会使用 =
或 LIKE
表示,例如:
WHERE name = 'bob'
WHERE name LIKE '%bob%'
当 case_sensitive
关闭时,过滤条件使用 ILIKE
(或等效项)表示,例如:
WHERE name ILIKE 'bob'
示例
在设置 Product 探索时,使所有过滤条件都区分大小写:
explore: product {
case_sensitive: yes
}
对于“客户探索”,使所有过滤条件都不区分大小写:
explore: customer {
case_sensitive: no
}
常见挑战
某些 SQL 方言不支持 case_sensitive
默认情况下,case_sensitivity
已开启,并且过滤器区分大小写。如果您的 SQL 方言不支持 case_sensitive
参数,则区分大小写会根据您的数据库设置而有所不同,这通常不区分大小写。
为了让 Looker 在 Looker 项目中支持 case_sensitive
,您的数据库方言也必须支持它。下表显示了最新版 Looker 中支持 case_sensitive
的方言:
注意事项
您可以在 MySQL 中创建区分大小写的搜索
尽管 MySQL 不支持 case_sensitive
参数,但您可以在 MySQL 中创建区分大小写的搜索。在 MySQL 中,某些数据类型(称为二进制字符串)会将文本存储为一系列数字。文字的大小写决定了所使用的数字。因此,如果您将文本转换为二进制字符串,可以执行区分大小写的搜索。例如:
dimension: will_NOT_be_case_sensitive {
sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
sql: CAST(${TABLE}.something AS BINARY) ;;
}