【MySQL】日本語(ひらがな、カタカナ)を一文字でも含むレコードを取得する

MySQL

大したことはない内容ですが、ググっても分かりにくかったのでまとめます。

MySQLにおけるsql文の書き方


SELECT
 hoge
FROM
 piyo py
WHERE
 py.hoge REGEXP '[ぁ-ん ァ-ン]'

WHERE句にREGEXPを入れて、'[ぁ-ん ァ-ン]’を指定します。

正規表現とワイルドカード

REGEXPは正規表現のこと、正規表現は英語でRegular Expressionというのでその略ですね。

定番のLIKE+ワイルドカードではこれは実現できませんね。ちなみにワイルドカードは

% ・・・任意の0文字以上の文字列
_ ・・・任意の1文字

の2つが使えます。

‘[ぁ-ん ァ-ン]’に関してですが、そもそも正規表現では

[~] ・・・[]の中のどれか任意の1文字

を表します。

また、特殊な例として[ぁ-ん]は小文字の「あ」から大文字の「ん」まで全てのひらがなのうち任意の1文字を表し、[ァ-ン]は小文字の「ァ」から大文字の「ン」まで全てのカタカナのうち任意の1文字を表します。
もちろん[a-zA-Z]は半角英字(アルファベット)全てのうち任意の1文字、[0-9]は半角数字全てのうち任意の1文字を示すわけです。

よって


REGEXP '[ぁ-ん ァ-ン]'


「日本語(ひらがな、カタカナ)を一文字でも含むレコード」を指定できるわけですね!

コメント

タイトルとURLをコピーしました