У меня есть таблица, которая содержит имена, которые находятся на немецком языке, и в них есть специальные символы: ä, ö, ü и т.д. Вот как я просматриваю эту таблицу:
SELECT users.name FROM users WHERE users.name LIKE '%sch%' LIMIT 8
Скажем, что у нас есть пользователь под названием "Schön"
а кто-то типа в поиске "Schon"
. Вышеприведенный код вернет 0 строк с ö != o
Какова наилучшая практика при работе с такими особыми символами? Я знаю, что я могу заменить персонажей, но это просто бессмысленно.
Запрос не сможет вернуть имена, не содержащие sch
; он не имеет ничего общего с o
или ö
.
По-видимому, ваша сортировка не сворачивает дело, иначе Sch
в Schön
был бы пойман LIKE '%sch%'
.
Предоставьте пользователям SHOW CREATE TABLE users
. Вы должны найти, что сортировка для name
- это ..._bin
. Это говорит о том, что S
! = s
и ö
! = o
ö = o
равно или нет @JayShankarGupta .. я думаю, чтоutf8_unicode_ci
будет тем столкновением, в котором нуждается Джон.