照合で列を宣言しますutf8_generic_ci
。この照合では、šはsに等しく、čはcに等しいと見なされます。
create temporary table t (t varchar(100) collate utf8_general_ci);
insert into t set t = 'piščanec';
insert into t set t = 'piscanec';
select * from t where t='piscanec';
+------------+
| t |
+------------+
| piščanec |
| piscanec |
+------------+
列の照合を使用したくない、または使用できない場合(utf8_generic_ci
列に一意のインデックスがあり、piščanecとpiscanecを区別したい場合)、クエリでのみ照合を使用できます。
create temporary table t (t varchar(100) collate utf8_bin);
insert into t set t = 'piščanec';
insert into t set t = 'piscanec';
select * from t where t='piscanec';
+------------+
| t |
+------------+
| piscanec |
+------------+
select * from t where t='piscanec' collate utf8_general_ci;
+------------+
| t |
+------------+
| piščanec |
| piscanec |
+------------+
FULLTEXTインデックスは、列の照合を直接使用することになっています。新しい照合を定義する必要はありません。どうやら、フルテキストインデックスは列のストレージ照合にのみ含めることができるためutf8_general_ci
、検索とutf8_slovenian_ci
並べ替えに使用する場合collate
は、次の順序で使用する必要があります。
select * from tab order by col collate utf8_slovenian_ci;