SQL
COLLATION作成
DROP COLLATION "jp-sort";
CREATE COLLATION "jp-sort" (provider = icu, locale = "ja-u-kn-true");
COLLATION検索
SELECT *
FROM pg_collation
where collname like '%jp%';
COLLATIONを利用した検索
SELECT name
FROM user
WHERE name like '%テスト'
ORDER BY name COLLATE "jp-sort" ASC
limit 1000;
ソートテスト COLLATIONを利用したテスト
_スペース:テスト
_全角スペース:テスト
!_びっくり:テスト
@_アッドマーク:テスト
1_いち:テスト
1_イチ:テスト
01_ぜろいち:テスト
01_ゼロイチ:テスト
1テスト
2_に:テスト
2_ニ:テスト
9_きゅう:テスト
9_キュウ:テスト
10_じゅう:テスト
10_ジュウ:テスト
11_じゅういち:テスト
11_ジュウイチ:テスト
99_きゅうじゅうきゅう:テスト
99_キュウジュウキュウ:テスト
a_小エイ:テスト
A_大エイ:テスト
b_小ビ:テスト
B_大ビ:テスト
z_小ゼット:テスト
Z_大ゼット:テスト
あああああ:テスト
アアアアア:テスト
アアアアア:テスト
か:テスト
愛:テスト
関連資料
https://www.postgresql.org/docs/current/collation.html#ICU-COLLATION-LEVELS
https://www.postgresql.jp/docs/12/collation.html
https://www.unicode.org/reports/tr35/tr35-collation.html
https://kikakurui.com/x4/X4061-1996-01.html
https://www.unicode.org/reports/tr41/#UTS10
https://blog.query1000.com/archives/46219676.html
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14146371914
http://www.infonet.co.jp/ueyama/ip/binary/x0208txt.html