Равенство в сравнении строк определяется с помощью сопоставления.general
будет обрабатывать каждую букву как их (латинский) базовый символ.Вам нужно указать параметры сортировки, которые поддерживают акценты и умлауты, которые вы хотите выделить.
Сопоставление включает специфику языка.Например, для испанского языка n < ñ < o
(в то время как n = ñ
для практически любого другого языка), для шведского у вас есть Y = Ü
, для немецкого (и большинства сопоставлений) есть ß = ss
, а для венгерского (и многих других сопоставлений) выиметь o < ö
.
Так что для венгерского сайта вы можете выбрать utf8_hungarian_ci
, и если ваше программное обеспечение локализуемо для определенного языка (и аудитории), вы можете настроить параметры сортировки этого столбца или позволить администраторуВыбери один.К сожалению, для полнотекстового поиска (в отличие от других сравнений строк, таких как =
или order by
), вы не можете указать параметры сортировки в запросе на лету, поэтому вам нужно выбрать одну.
На обычном мультиязычном сайте большинство пользователей, вероятно, ожидают, что поиск будет соответствовать очень общей схеме english / russian / китайская схема, и не удивятся, если при вводе tok
они найдут tök
.Они могут даже раздражаться, чтобы не получить их, особенно если у них нет ö
на клавиатуре и они действительно хотят купить тыкву (и знают венгерское слово для этого).Большинство поисковых систем на самом деле стараются не быть слишком узкими и хотят найти café
, когда вы вводите cafe
, и часто прикладывают некоторые усилия, чтобы найти café
, когда вы вводите coffee
, caffé
илиcafée
.
Нет языка, который бы обрабатывал каждый акцент и умлят по-разному.Если вы действительно хотите различить каждый отдельный специальный символ, вы можете попробовать utf8_bin
(хотя я не уверен, что я бы назвал его наиболее гибкий ).Важно отметить, что он чувствителен к регистру, но поскольку полнотекстовый поиск всегда нечувствителен к регистру, это не имеет значения.Если вы выполняете другие сравнения строк в этом столбце (например, like
), это может быть проблематично.Кроме того, вы потеряете поведение, зависящее от языка, например, Y = Ü
или ß = ss
(если вы не реализуете его самостоятельно).