Latest web development tutorials

MySQLの正規表現

前の節では、MySQLのLIKEを通して学んだ...%をあいまいマッチングのため。

MySQLはまた、正規表現のマッチングを使用する他の正規表現のマッチングは、MySQL REGEXP演算子をサポートしています。

あなたは、PHPやPerlを知っている場合はMySQLの正規表現は、これらのスクリプトに似たマッチングので、操作は、非常に簡単です。

通常モード以下の表では、REGEXP演算子で使用することができます。

モード 説明
^ 文字列の先頭にマッチします。 あなたはRegExpオブジェクトのMultilineプロパティを設定した場合、^また、 '\ n'の位置や '\ rを'の後に一致します。
$ 文字列の入力端と一致しています。 あなたは複数行プロパティRegExpオブジェクトを設定した場合は、前にも$ '\ n'のかは '\ r'が位置に一致します。
"\ n"以外の任意の1文字に一致しています。 、 '\ n'を含めての使用と同様に、任意の文字を含めて一致させるには '[。\ N]'モード。
[...] 文字のセット。 任意の文字が含まれる一致します。 たとえば、 '[abc]は' A '内の「プレーン」と一致します。
[^ ...] 負の文字セット。 含まれていない任意の文字に一致します。 たとえば、 'P'で '[^ ABC]'マッチ「プレーン」。
P1 | P2 | P3 マッチP1、P2、またはP3。 例えば、「Z |食品」は「Z」や「食」を一致させることができます。 '(Z | f)はOOD' "zood」や「食」に一致します。
* 直前の部分正規表現0回以上一致します。 たとえば、雑* "Z"と "動物園"を一致させることができます。 * {0、}と同じです。
+ 直前の部分正規表現と1回以上一致します。 たとえば、「ZO +」は「ZO」と「動物園」と一致しますが、「Z」を一致させることはできません。 + {1}と同等です。
{N} nが負でない整数です。 決定n回に一致します。 たとえば、 'oは{2}' 'O'に "ボブ"と一致しませんが、2 Oで「食」を一致させることができます。
{N、M} m、nは非負整数である。ここで、n <=メートル。 マッチn回以上とm回までと一致しました。

あなたはより多くの定期的なニーズを知ったら、私たちは正規表現を使用してSQL文を書くことが自分たちのニーズに、よりすることができます。 以下は、我々はいくつかの小さな例(テーブル名:person_tbl)が一覧表示されます私たちの理解を深めて:

「ST」で始まるにデータフィールド名のすべてを検索します。

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

エンディングのための「OK」にデータフィールド名のすべてを検索します。

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

名前フィールドは、すべてのデータ「傷」の文字列が含まれています検索:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

母音で、すべてのデータの文字列の 'OK'末端で開始する名前のフィールドを検索します。

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';