MySQL использует сопоставления для сравнения строк, поскольку некоторые символы должны соответствовать
Пример:
SELECT 'é' = 'e' COLLATE utf8_unicode_ci;
SELECT 'oe' = 'œ' COLLATE utf8_unicode_ci;
оба возвращают true
Теперь, как я могу сделать то же самое скавычки (') против апострофов (')
Это не один и тот же символ, правильный символ, который следует использовать при написании "it" или "l'oiseau" (на французском языке), является апострофом.
Дело в том, что ни utf8_general_ci, ни utf8_unicode_ci не сопоставляют их.
Простое решение - хранить все в кавычках и заменять все апострофы, когда пользователь выполняет поиск, но это неправильно.
Реальным решением было бы создать настраиваемое сопоставление на основе utf8_unicode_ci и пометить их как эквивалентные, но для этого необходимо отредактировать XML-файлы конфигурации и перезапустить базу данных, что не всегда возможно.
Как бы вы это сделали?