Memos About Salesforce

Salesforceにハマってたこと!

APEX クエリ LIKE比較演算子 前方・後方・部分の一致

こんにちは、管理人の@Salesforce.Zです。

検索画面を開発しているでしょう

あるいは、データ捜査しているじゃろ

こんな時に

・部分一致曖昧検索 ・前方一致 ・後方一致 ・完全一致

いろいろなニーズがある

今回、この【LIKE演算子について

共有したいと思います。

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑

読んだら得ること

★ 前方・後方・部分の一致のクエリ方法

目次

LIKE定義

指定した 項目名(fieldName) の値が指定した value のテキスト文字列の文字に一致する場合、式は true です。

演算子 名前 説明
LIKE Like SOQL および SOSL の LIKE 演算子は、SQL の LIKE 演算子と似ています
部分的なテキスト文字列を照合するメカニズムを提供し、ワイルドカードの使用がサポートされます
・LIKE 演算子では % と _ のワイルドカードがサポートされます。
・% ワイルドカードは、0 個以上の文字に一致します
・_ ワイルドカードは、1 文字のみに一致します
・指定した value のテキスト文字列は、一重引用符で囲む必要があります
・LIKE 演算子は、文字列項目でのみサポートされます
SQL の大文字と小文字を区別する照合とは異なり、
 LIKE 演算子では大文字と小文字を区別しない照合が実行されます
・SOQL および SOSL の LIKE 演算子では、特殊文字 % または _ のエスケープがサポートされます
特殊文字エスケープする場合を除き、検索ではバックスラッシュ文字を使用しないでください

使用例

サンプルデータ
取引先責任者サンプルデータが下記にあるとする

No. 名前
1 BMiRai desu BMiRai desu
2 Mi Rai Mi Rai
3 Mi Syu Mi Syu
4 Mitisuu desu Mitisuu desu
5 robert日本 robert日本 楽子
6 lucy日本 ナナコ lucy日本 ナナコ
7 Lily日本 逸子 Lily日本 逸子

前方一致

説明:前方一致検索する場合、LIKE演算子を指定して検索条件の最後に「%」を記載します。

使用方法:「SELECT * FROM [テーブル名] WHERE LIKE '[条件]%'」の形式で記述します。

次のクエリは MiRai、Misyu、Miman と一致しますが、No.4のBMirai とは一致しません。

SELECT AccountId, FirstName, lastname
FROM Contact
WHERE lastname LIKE 'Mi%'

実行結果: f:id:jude2016:20180809155511p:plain

後方一致

説明:後方一致検索する場合、LIKE演算子を指定して検索条件の先頭に「%」を記載します。

使用方法:「SELECT * FROM [テーブル名] WHERE LIKE '%[条件]'」の形式で記述します。

使用例:

SELECT AccountId, FirstName, lastname
FROM Contact
WHERE lastname LIKE '%日本'

実行結果: f:id:jude2016:20180809155426p:plain