case_sensitive (適用於探索)

本頁面是指 探索中的 case_sensitive 參數。

case_sensitive 也可做為模型的一部分,詳情請參閱case_sensitive (適用於模型) 參數說明文件頁面。

case_sensitive 也可做為維度的一部分,詳情請參閱 case_sensitive (適用於欄位) 參數說明頁面。

用量

explore: explore_name {
  case_sensitive: yes
}
階層
case_sensitive
預設值
yes (如果資料庫方言支援該參數)

接受
布林值 (yesno)

定義

case_sensitive 可決定特定「探索」中的篩選器是否區分大小寫。與「探索」相關的所有篩選器都會受到影響,包括在「探索」使用者介面、「資訊主頁」使用者介面和 filters 參數中新增的篩選器。

根據預設,case_sensitivity 為開啟狀態,且篩選器會區分大小寫。不過,部分方言不支援這個參數,詳情請參閱本頁的「case_sensitive 不支援部分 SQL 方言」一節。

case_sensitive 的運作方式是調整 Looker 產生的 SQL 的 WHERE 子句。case_sensitive 啟用時,篩選器會以 =LIKE 表示,例如:

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

如果 case_sensitive 處於關閉狀態,篩選器會以 ILIKE (或同等項目) 表示,例如:

WHERE name ILIKE 'bob'

範例

為「產品」探索設定所有區分大小寫的篩選器:

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 的方言:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

注意事項

您可以在 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) ;;
}