Open1
データベース周り

MySQLで実行したクエリの結果がなんだかおかしい件(照合順序大事)
何が起きたか
-
新しく作ったテーブルのクエリの結果がなんだかおかしい
-
ひらがな/カタカナを区別していない
-
半角/全角を区別していない
-
なんでや…
SELECT * FROM users WHERE name = 'テスト';
▫️結果
| テスト |
| てすと | <---なんでや…
SELECT * FROM users WHERE name = 'abc';
▫️結果
| abc |
| Abc | <---なんでや…
原因
- MySQLの「照合順序(collations)」がデフォルトの
utf8mb4_0900_ai_ci
になっており、作成時に指定しなかったため
utf8mb4_0900_ai_ci
とは
- 要はひらがな/カタカナや「は」と「ぱ」などは同じ扱いにされてしまうよう
- 日本語に優しくない…
対応
- バイナリソート(
utf8mb4_bin
)に変えよう