照合順序
「文字」カラム (CHAR、VARCHAR、または TEXT 型のカラム) にはカラム文字セットとカラム照合順序があります
指定されていなければデフォルト値が使われる
各文字セットのデフォルトの照合順序を確認するには、SHOW COLLATION ステートメントを使用します
code:sql
mysql> SHOW COLLATION;
+--------------------------+----------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci | big5 | 1 | Yes | Yes | 1 |
| big5_bin | big5 | 84 | | Yes | 1 |
| dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 |
| dec8_bin | dec8 | 69 | | Yes | 1 |
...
ciはCase Insensitiveの略
utf8mb4についての照合順序の一覧は SHOW COLLATION LIKE 'utf8mb4%'とかで見られる
各collationのはたらき
table:各collation
collation A=a ハ==ハ 🍣==🍺 は==ば==ぱ==バ 備考
utf8mb4_general_ci T F T F utf8mb4のデフォルト(MySQL5.7以前)。かなり古い規格
utf8mb4_bin F F F F 全て区別する
utf8mb4_unicode_ci T T T T 全然区別しない
utf8mb4_unicode_520_ci T T F T 🍣=🍺問題を解決できる照合順序。520はUnicodeのバージョン
utf8mb4_japanese_ciは2017-02-07時点ではない
アルファベットの全角半角は無視してほしいけど、🍣と🍺は見分けたいし、濁点の有無やひらがな、カタカナのは区別したい(パパ!=ハハ)というような要求は満たせない
Update 2017-04-13 utf8mb4_ja_0900_as_cs
as accesnt sensitive
cs case sensitive
濁点、半濁点を区別できるようになった?
Update 2017-06-15 utf8mb4_ja_0900_as_cs_ks
ks kana-sensitive
ひらがなとカタカナを区別できるようになった