このページでは、モデルの一部である
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) ;;
}