多くの読書と実験の後、検索には PRIMARY 強度が必要ですが、順序付けには TERTIARY または IDENTICAL が必要なようです。主な質問: H2 (または他の DB) で達成することは可能ですか?
二次的な質問: ここにいるのは私だけですか、それとも上記の組み合わせが好きな人はいますか? いくつかの確認は、私の正気に役立ちます。
背景: 照合順序は、データベースを作成する最初の段階でしか設定できないようです。ですから、正しいものを確実に選びたいと思います。私は主にこれらのユースケースを考えています(今のところ):
ユーザーがテーブルをフィルタリングするために入力を開始できる検索フィールド: ここでは、結果が失われないようにするために PRIMARY が最も適切と思われます (ユーザーは Google に慣れています...)。ただし、より正確な検索を行うために、2 次または 3 次照合を有効にするオプションをユーザーに提供できると便利です。
順序付け: ユーザーが表の列をクリックして内容を並べ替える場合、TERTIARY/IDENTICAL 順序付けが適切と思われます。それは私が日常の経験から慣れていることです。
ここで公式の H2 ドキュメントを読みました: http://www.h2database.com/html/commands.html#set_collat ion 。そしてここ: http://www.h2database.com/html/datatypes.html#varchar_ignorecase_type その他の関連情報: 照合強度とローカル言語の関係
テスト SQL ( https://groups.google.com/forum/?fromgroups=#!topic/h2-database/lBksrrcuGdYから):
drop all objects;
set collation english STRENGTH PRIMARY;
create table test(name varchar);
insert into test values ('À'), ('Ä'), ('Â'), ('A'), ('à'), ('ä'), ('â'), ('a'), ('àa'), ('äa'), ('âa'), ('aa'), ('B'), ('b');
select * from test where name like 'a' order by name;
select * from test order by name;