case_sensitive(适用于“探索”)

本页中提及的 case_sensitive 参数是探索的一部分。

case_sensitive 也可用作模型的一部分,如 case_sensitive(适用于模型)参数文档页面所述。

case_sensitive 也可以用作维度的一部分,如 case_sensitive(针对字段)参数文档页面中所述。

用量

探索:探索名称 {
case_sensitive:
}
层次结构
case_sensitive
默认值
yes(如果数据库方言支持参数)

接受
布尔值(yesno

定义

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) ;;
}