..


スポンサーリンク

MySQLのクエリで正規表現

マックスボッシによって書かれた記事

MySQLの内部エンジンは、ネイティブがある-平等、不平等との類似(LIKE)の一般的な演算子に加えて-非常に有用な演算子:REGEXP演算子
その名前が示すように、REGEXP演算子は、私たちのMySQLデータベース内複雑な検索を実行するために、正規表現の能力を最大限に活かします。 シンタックスは単純です:






 field_nameをセレクト







テーブル名から







 WHERE field_nameはREGEXP式;

 
メインキャラクターの簡単な要約表と比較の式で使用される特殊な構文に従ってみましょう:

^ 文字列の先頭
$ 文字列の末尾
任意の文字
[...] 角かっこ内の文字のどれか
[^...] 角括弧内の文字以外の文字
| 文字またはそれらの代替案の別の文字列
* 直前の文字または文字列の0回以上の繰り返し
+ 直前の文字または文字列の1回以上の繰り返し
{N} "N"の文字、または前の文字列の繰り返し
{最小、最大} 最小値と最大値の間に倍の数に直前の文字または文字列を繰り返す

我々が千の言葉よりも価値がある、いつものように、いくつかの実用的な例を作る...
簡単にするために我々は我々の友人の名前を含む架空のカレンダデータベースを参照します。

1)私たちは、"M"で始まるすべての名前を見つける

 



カレンダー名REGEXP'^ M'から名前を選択します。

 
私たちのクエリは、例えば、返されます。
  • M ARA
  • Mアーチ
  • M分木
  • Ilena M
2)我々はすべて、名前の末尾が"か"を見つける
 



カレンダーから名前を選択WHERE名前REGEXP'または$';

 
私たちのクエリは、例えば、返されます。
  • またはフィリップ
  • 点灯または
  • マーク
  • または
  • ポールまたは
3)私たちは、"M"で始まるすべての名前を見つけ、最終的に"または"
 



名前REGEXP'^ M + O $"カレンダーから名前を選択する。

 
私たちのクエリは、例えば、返されます。
  • Mアークまたは
  • Mアリ
4)私たちは、文字"r"を含むすべての名前を見つける
 



名前REGEXP'r'をカレンダーから名前を選択する。

 
私たちのクエリは、例えば、返されます。
  • R CLA
  • しかし、R
  • しかし、R CO
  • しかし、私はR
5)私たちは、"I"の文字のグループを含むすべての名前を見つける"ではなく"または
 



名前REGEXPカレンダーから名前を選択する'MA | RA';

 
私たちのクエリは、例えば、返されます。
  • リュック
  • しかし、RA
  • しかし、RCO
  • しかし、私は R
6)我々は、文字の"m"と"a"が含まれていないすべての名前を見つける
 



カレンダー名REGEXP'[^ ma】"から名前を選択します。

 
私たちのクエリは、例えば、返されます。
  • フィリップ
  • ルーチョ
使用の可能な分野が非常に多くなるとこれがであることを意味するとして、それは短い記事で要約することが困難であるため、私は、さらに潜在的なREGEXP演算子をテストするために読者を残す。

同じカテゴリの...
E -ラーニング
MS Accessの(上級) MS Accessの(上級)
迅速かつ簡単にデータベースを作成および管理する方法を学びます。 29€から開始。
MySQLの(コース) MySQLの(コース)
オープンソースのデータベースの管理。 39€から。
SQLとデータベース(コース) SQLとデータベース(コース)
リレーショナルデータベースを作成および管理。 39€から。
スポンサーリンク