半角/全角、大文字/小文字、ひらがな/カタカナがごちゃまぜでもヒットさせるSQL文です。
例えば、抽出対象が「さまぁ~ず」というワードであれば、
・サマァ~ズ
・サまァ~ズ
・さまあ~ず
でもヒットします。
逆に、
・さまーず
・さまぁーず
・さまぁ~ズ
・バカルディ
ではヒットしません。
「さまぁ~ズ」はいけそうな気がしてしまいますが、ズが「ス+濁点」になるので残念ながらヒットしません。
そんなさまぁ~ずのためのSQL文がこちら。
SELECT * FROM `table_name` col_name COLLATE utf8mb4_unicode_ci LIKE '%キーワード%'
COLLATEで照合順序を指定して、LIKE 演算子でマッチさせます。
照合順序はデータベース側でテーブルごとに設定されているので、期待通りの抽出ができているならば指定は不要です。
照合順序の記述方法は、文字コード_言語名_比較法で指定します。
文字コード |
utf8、utf8mb4、sjis、latin1 など
|
||||||
---|---|---|---|---|---|---|---|
言語名 |
general、unicode など
|
||||||
比較法 |
|
よりあいまいに検索するなら半角/全角、大文字/小文字を区別しない照合順序にしてあげればいいので、
_unicode_ci にしておけばよいでしょう。
いやいや、「さまぁ~ず」以外認めないよって人は、_bin でガッチガチにしておきましょう。