SQLのワイルドカード
唯一のWHEREデータ検索機能は、それはあまりにも単純なビットを機能、そして我々は、ワイルドカードを導入しました。ワイルドカード演算子をマッチングすることであるLIKEの機能。
そう、一般的に、長い時間を検索、ワイルドカードの単語を使用するようにしても、ワイルドカードと同等の他の選択肢を検索しないようにしよう、だけでなく、先頭ではなく、検索した後、声明の中で書いてみる必要があります。
%ワイルドカード
%は任意の文字が任意の数(0、1回、nは回)出現表し。たとえば、次の式は、任意の文字でジェットの背後にある行の先頭を検索するためであります
SELECT * FROMテーブルWHERE COLNAME LIKE 'ジェット%';
以下は、検索の任意の位置にジェットを含む行を示し
SELECT * FROMテーブルWHERE COLNAME LIKE '%ジェット%';
また、最後の先頭にB-行を検索することができます
SELECT * FROMテーブルWHERE COLNAME LIKE '%のB';
注:ワイルドカード%は、NULL値と一致していません。
そして、大文字と小文字を区別し、ワイルドカード
- ワイルドカード
そして、異なる% - 単一の文字にマッチします
SELECT * FROMテーブルWHERE COLNAME LIKE 'Jet-';マッチがJeta、jetb、あるjetc
SELECT * FROMテーブルCOLNAME LIKE 'ジェット- ';マッチは、ジェットA、ジェットB、ジェットcであります
正規表現
正規表現は、より複雑な検索シーンに適用されます。オペレータと一致する正規表現REGEXP必要があり場合、小文字を区別しない、正規表現のケースをし、正規表現の後BINARY
基本的な文字の一致
私たちは、ジェットの初めの検索を開始します
SELECT * FROMテーブルWHERE COLNAMEのREGEXP 'ジェット';
あなたがjeta jetbを一致させたい場合は、私たちが使用しなければならないと、それは、任意の1文字に一致し、ワイルドカード - 同じ役割
SELECT * FROMテーブルWHERE COLNAMEのREGEXP 'ジェット。';
行動や試合
発現又は|以下jeta、検索することによりjetbラインを含むカラム上に発現
SELECT * FROMテーブルWHERE COLNAMEのREGEXP 'jeta | jetb';
SELECT * FROMテーブルWHERE COLNAMEのREGEXP '| jetb | jeta jetc';
任意の1文字に一致します
任意の一文字にマッチします[▲]
SELECT * FROMテーブルWHERE COLNAME REGEXP、 ; '| | jetb jetc Jeta'
に相当する
SELECT * FROMテーブルWHERE COLNAME REGEXP、 'ジェット[ABC]';
[ABC]は[| B | C]速記
SELECT * FROMテーブルWHERE COLNAME REGEXP、 'ジェット[^ ABC]';
jeta jetb jetc以外マッチの任意の数が表されます。
範囲内の任意の数と一致します
[0123456789]は[0-9]に簡略化することができます
特殊文字をマッチング
別の言葉の使用は任意の単一文字を表すために使用されるが、我々は含まを検索したい場合は。文を、\使用する。検索表現します。
SELECT * FROMテーブルWHERE COLNAMEのREGEXP '\。';
私たちは、表現のSQL正則で特別な役割を持っているすべてのシンボルのためのエスケープそれを呼び出します。
メタキャラクタ | 説明 |
---|---|
\ F | フィード |
\ nは | ラップ |
\ rを | 入ります |
\トン | 集計 |
\ V | 垂直タブ |
マッチング文字クラス(クラス)
カテゴリ | 説明 |
---|---|
[:すくい] | アルファ(上部または下部)と番号[0-9] |
[:アルファ:] | 名前はすべて大文字と小文字を示唆するように |
[:ブランク:] | スペースやタブ |
[:桁:] | 任意の数の[0-9] |
[:印刷:] | 任意の印刷可能な文字 |
[:グラフ:] | 空白印字可能文字に加え、 |
[下部:] | 小文字[AZ] |
[:アッパー:] | 大文字[AZ] |
[:スペース:] | マッチングメタ文字 |
マッチングの複数の例
前述の任意の数は、単一の場所と一致するように見える、と私たちはしばしば、より複雑な例を見つける必要があり、今回はメタ文字を複製しています。
メタキャラクタ | 説明 |
---|---|
* | ゼロまたはそれ以上の一致 |
+ | 一つ以上のマッチング |
? | 0又はマッチング |
{N} | n個の一致 |
{N} | N-マッチング未満 |
{N、M} | マッチング範囲の数(M <255) |
SELECT * FROM表COLNAME REGEXP、 '\([0-9]スティック\?'); 式が1本のスティック、2stickまたは1本のスティック、2sticksを検索します。?続いて、スティックまたはスティック検索スティックを表すSELECT * FROMテーブルWHERE COLNAMEはREGEXP、 '[[:のための桁:]。{} 4'、検索数字を表しは、[0-9] [0-9] [0と等価です-9] [0-9]
ロケータ
メタキャラクタ | 説明 |
---|---|
^ | テキストの先頭 |
$ | テキストの終わり |
[[:<:] | 単語の開始時刻 |
[[:>:]] | エンディングの言葉 |
SELECT * FROMテーブルWHERE COLNAME REGEXP、 ;「^ [0-9 \]」の
数字や文字で始まる検索を示している。
注 ^ []に否定的な意味を表します