Skip to content →

PostgreSQLで日本語での並び替えがうまくいかない場合の対処法

とあるサーバーでPostgreSQLを使っているのですが、サーバーを移行してから、日本語の並び替えがおかしくなってしまいました。今回はその解決方法についてです。

ロケールが違う場合に起きる

PostgreSQLのロケールは言語と文字コードを指定するようですが、例えば日本語+UTF8で作っているにもかかわらず、移行したサーバーが日本語+EUC-JPだった場合、こんな時に並び替えが上手くいきません。

レンタルサーバーの場合、ロケールを変えるのはできないところが多いと思います。
そんな時は

ORDER BY convert_to(title,'UTF8');

のようにconvert_toを使うことで解決できました。

[sc name=”engeneer”]

SHARE

PROFILE

入江 慎吾
イリテク株式会社代表取締役 / メンターマッチングサービスMENTAを運営(月間流通額700万突破)/ 累計20個以上のWEBサービスやアプリを開発 / CAMPFIREとコミュニティツールVoyageを共同開発中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

SPONSER

Published in 開発奮闘記