SQL-поиск со специальными символами

0

У меня есть таблица, которая содержит имена, которые находятся на немецком языке, и в них есть специальные символы: ä, ö, ü и т.д. Вот как я просматриваю эту таблицу:

SELECT users.name FROM users WHERE users.name LIKE '%sch%' LIMIT 8

Скажем, что у нас есть пользователь под названием "Schön" а кто-то типа в поиске "Schon". Вышеприведенный код вернет 0 строк с ö != o

Какова наилучшая практика при работе с такими особыми символами? Я знаю, что я могу заменить персонажей, но это просто бессмысленно.

  • 0
    попробуйте выбрать ö = o в MySQL, вы получите 1, потому что то же самое для MySQL
  • 0
    зависит, какая коллизия в кодировке используется, если ö = o равно или нет @JayShankarGupta .. я думаю, что utf8_unicode_ci будет тем столкновением, в котором нуждается Джон.
Показать ещё 2 комментария
Теги:
utf-8

1 ответ

1

Запрос не сможет вернуть имена, не содержащие sch; он не имеет ничего общего с o или ö.

По-видимому, ваша сортировка не сворачивает дело, иначе Sch в Schön был бы пойман LIKE '%sch%'.

Предоставьте пользователям SHOW CREATE TABLE users. Вы должны найти, что сортировка для name - это ..._bin. Это говорит о том, что S ! = s и ö ! = o

Ещё вопросы

Сообщество Overcoder
Наверх
Меню