У меня есть функция поиска, я хочу, чтобы это было чувствительно к регистру, в том числе символы, такие как EuO т.д.MySQL UPPER() и LOWER() не работает с UTF-8 символов
Итак, я преобразование ввода в верхний регистр перед запросом базы данных. Но MySQL не конвертирует акцентированные символы вправо.
SELECT * FROM items WHERE UPPER(description) = $input
У меня есть MySQL 5.1.32, я пробовал разные сортировки, но ни один из них не работает правильно. То же самое с LOWER().
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`description` text CHARACTER SET utf8 COLLATE utf8_bin,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=187 DEFAULT CHARSET=utf8"
Поле описания содержит 'hellö'. Mysql преобразует его в «HELLö». Я хочу «ЭТО ...».
Пожалуйста вывесить выход 'SHOW CREATE TABLE' деталей, значение '$ input' и значение' name' вы ожидаете, чтобы соответствовать. – Quassnoi
Сделано! (также изменил его в поле описания вместо имени) –
вы используете 'UTF8_BIN', который чувствителен к случаю и акценту. Вместо этого используйте 'UTF8_GENERAL_CI'. – Quassnoi