case_sensitive (適用於模型)

本頁面是指 模型case_sensitive 參數。

case_sensitive 也可做為探索的一部分,詳情請參閱「case_sensitive (適用於探索)」說明文件頁面。

case_sensitive 也可做為維度或篩選器欄位的一部分,詳情請參閱「case_sensitive (適用於欄位)」說明文件頁面。

用量

case_sensitive: yes
階層
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 參數,大小寫區分方式會因資料庫設定而異,通常不會區分大小寫。如需方言支援的相關資訊,請參閱case_sensitive部分 SQL 方言不支援

範例

為模型設定所有篩選器須區分大小寫:

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

方言 是否支援?
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

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