SQLの窓

2018年09月01日


各RDBMS の正規表現の実装状況 : MySQL, SQLServer, PostgreSQL, Oracle

今日この日まで、SQL の条件に『正規表現』を使うという発想が無かったのですが(たいていそんな複雑な事はしないし解りにくい)、最近は日本人以外のカタカナ氏名の検索をする事が多くなった事を起因とする要望から、『どうなんだろう』と思って調べた結果です。( 外国人のカタカナ表記では微妙にゆらぎがあるのです )

※ 結果的にウチは、SQLServer なので、or で文字列作っていくよりは楽になりそうです。

SQLServer

検索条件のパターン照合

LIKE で使用される % や _ 以外に、LIKE 対象の文字列に [] と [^] が使用できます。これだけでも文字列作成が格段に楽です。

ただ、他の RDBMS と比べると『正規表現』としては一番未熟です。


MySQL

3.3.4.7 パターンマッチング

12.5.2 正規表現

LIKE では無く REGEXP を使用して、『select * from 社員マスタ where フリガナ REGEXP '.+オ.+'』みたいな書き方ができます。正規表現として使える演算子はそれほど多くはありませんが、逆に単純で使いやすいとは思います。

PostgreSQL

9.7.3. POSIX正規表現

正規表現をそのまま使える記法のようで、~( チルダ ) を使用して、where の中で検索できるようです。

例) select * from テーブル名 where 列名 ~ '[a-zA-Z]'

Oracle

REGEXP_LIKE

どうやら関数のようなものらしく、where の中で利用すると正規表現に一致する行が戻されるようです。
( 第三引数で、関数のパターン一致オプション )







【SQLExpressの最新記事】
posted by lightbox at 2018-09-01 01:31 | SQLExpress | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり