大文字と小文字を区別(モデル用)

このページでは、モデルの一部である case_sensitive パラメータについて説明します。

case_sensitive は、Explore の一部として使用することもできます(case_sensitive(Explore 用)のドキュメント ページを参照)。

case_sensitive は、ディメンションまたはフィルタ フィールドの一部として使用することもできます。詳しくは、フィールド(case_sensitiveをご覧ください。

使用状況

大文字と小文字を区別: はい
階層
case_sensitive
デフォルト値
yes(データベース言語がパラメータをサポートしている場合)

許可
ブール値(yes または no

定義

case_sensitive は、特定のモデルでフィルタが大文字と小文字を区別するかどうかを指定します。Explore の UI、ダッシュボード UI、フィルタ フィールド、メジャーの 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

一般的な課題

case_sensitive は一部の SQL 言語ではサポートされていません

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