↓の続きです。手短に。
文字列のソートなんていかにも怪しいのでドキュメントを確認します。
LC_COLLATEの定義でソートされそうな雰囲気です。今日は仕事が疲れたのでドキュメントをちゃんと読む気になりません。。。
とりあえずLC_COLLATEを確認してみます。東京リージョンにてエンジンバージョン「13.5」を指定してRDSを建築。
SHOW LC_COLLATE;
lc_collate |
---|
en_US.UTF-8 |
"en_US.UTF-8"でした。ジャパニーズな"ja_JP.utf8"と比べてみます。
CREATE TABLE table1 AS VALUES('_'),('a'),('A'); -- LC_COLLATE: en_US.UTF-8(デフォルト) SELECT column1 FROM table1 ORDER BY column1; -- LC_COLLATE: ja_JP.utf8 SELECT column1 FROM table1 ORDER BY column1 COLLATE "ja_JP.utf8";
en_US.UTF-8 |
---|
_ |
a |
A |
ja_JP.utf8 |
---|
A |
_ |
a |
"ja_JP.utf8"はASCIIみたいな並び順ですね。初期化時にlocaleで日本語設定をするだろうし、思ってたんとちゃうソートは稀によくありそう。
ちなみにLC_COLLATEはパラメータグループで指定できなかった。最初につくるDBは"en_US.UTF-8"から逃れられないのだろうか。