概要
- F検索のような検索が可能にしたい
F検索の簡単な挙動確認
- ひらがなとカタカナ、半角カナをほとんどの場合で同一に扱う
※半角カナの濁音は例外。(サイズは「サイス」として認識する) - 英語は大文字小文字を区別しない
- (🍣と🍺を区別する)
このような感じでシンプルである。
ただし、通常のlikeによる検索ではひらがなとカタカナのような曖昧検索ができる認識ではなかったため、文字コード分ずらしてやるか、、、?とか考えていた
どうやらMySQLの機能にあるらしい
Collation(照合)を指定することで可能っぽい
文字コードはutf8mb4
を利用するのがいいっぽい。
Collationは、古い記事なので実際にMySQLを見に行ったら詳細が違った。
ここら辺を見ると良さそう
以下のコマンドで利用可能なCollationを確認できる
SHOW COLLATION WHERE Charset = 'utf8mb4';
それなりに数があるものの、命名規則に従って一致するのを探すだけで良さそうだ
日本語対応もあるが、今回の要件には合わなかったので最終的にutf8mb4_0900_as_ci
が良さそうと感じた
理由は以下の通り:
全角/半角カナとひらがなを区別しない
→ksをつけない
アルファベットの大小を区別しない
→ci
清音・濁音の区別を行う
→as
実際に試したところ期待通りに動いたが、載せるのが面倒くさいので省略する
まとめ
命名規則さえ理解すれば簡単に利用可能であった。ここまで簡単に曖昧検索ができるとは思っていなかったのでできて楽しかった。😎