Log

いろいろ

文字列ソート

↓の続きです。手短に。

mtzml.hatenablog.com

文字列のソートなんていかにも怪しいのでドキュメントを確認します。

23.2. 照合順序サポート

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"から逃れられないのだろうか。