yutoonoderaWHERE句にLIKEとワイルドカードであいまい検索ツイートシェアはてブLINEPocketWHERE句の条件検索の中で便利な検索方法がLIKEを使ったあいまい検索です。指定した文字パターンに合致しているか否かで検索ができるので、正確にすべて話わからないけれど、頭文字が「あ」から始まるデータ、二番目の文字が「い」で合計3文字の文字列データなどあいまいな条件でデータ検索ができます。あいまい検索にはLIKEとワイルドカードがポイントになります。‘エスケープ文字’;このサンプルテーブルを使って以下のSQLを解説します。‘文字パターン’と%(パーセント)LIKE演算子と%(パーセント)を使ってあいまい検索を行います。%は0文字以上の任意文字の検索に使います。以下がサンプルのSQLです。‘YA%’;これはname列のフィールドに入っているYAから始まるレコードを取得します。7000name列でYAから始まるフィールドはYAMADAとYASUDAですので、この2つが検索対象になります。そのため、YAMADAとYASUDAのid、name,bd,h_salaryを取得します。‘%YA%’でもYAMADAとYASUDAが検索対象になります。‘%小%’で検索すれば、’大阪小学校’も’小児科’も’大中小’も検索に引っかかります。あいまいな検索をしたいときは%が便利です。‘文字パターン’と_(アンダースコア)_(アンダースコア)は、任意の1文字検索に使います。%よりも少し正確性を高めるあいまい検索で使用します。1文字だけは何でも良い文字列を検索する際に使います。5500‘YAM_DA’で検索しているので、YAMADAやYAMODA、YAMEDAなどが検索対象となりますが、employeeテーブルには対象となりそうなデータはYAMADAだけなので、nameがYAMADAのレコードを取得します。LIKEでは取得できたYASUDAは今回対象外となります。‘文字パターン’と_(アンダースコア)と_(アンダースコア)_(アンダースコア)を2つ以上使ったあいまい検索です。これは_(アンダースコア)1つよりもあいまいですが、LIKEほどあいまいではありません。_DA’;これはYAMADAやYASUDA、YAKODAなどが取得対象となります。2つのアンダースコアなので、YAIDAは対象外です。YAとDAの間に1文字のIしかありませんので、検索に引っかかりません。_(アンダースコア)はいくつでも使用できますので、文字数は分かっているけど、正確な文字列が分からない時に有効です。‘ESCAPE文字’次に%(パーセント)や_アンダースコアを検索対象の文字列に含みたいときはESCAPE文字を使いましょう。○○%や_KEIなどを検索にしたいときなどですね。ここではサンプルテーブル2を使います。‘\’;まずエスケープ文字は検索文字列に含まれない1バイト文字を指定できます。サンプルでは\を用いていますが、@なども使えます。‘\’となっていますのでSAKから始まった後に1文字入って_(アンダースコア)が入って、その後は0文字以上の任意の文字が検索対象になります。SAKから始まって1文字入るのはSAKUとSAKIです。SAEはこの時点で対象外となります。続いて_(アンダースコア)が入っています。SAKUもSAKIもその後に_(アンダースコア)が入っています。最後の%(パーセント)は0文字以上の任意文字なので、SATOもKATOUも対象となります。‘\の検索条件に合致するので、結果は以下のようになります。2000%と_の使い分けを完璧にしておけば、レコードを調べたい時に検索範囲をコントロールして検索ができます。広範囲で検索したい時は%で、もっと範囲を絞れる時は_を使うなどです。LIKEは良く使う演算子なので、使い方はしっかり覚えておきましょう。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。障害者枠のシステムエンジニア(SE)転職が絶対おすすめな理由システムエンジニア(SE)に再就職した方が良い理由RECOMMENDこちらの記事も人気です。