Регистрозависимый (case-sensitive) поиск в MySQL запросе
Опубликовано:
Комментариев: 0
Иногда возникает ситуация, когда необходимо, чтобы SQL запрос отличал "слово" и "СЛОВО", т.е. сделать SQL запрос регистро зависимым. В коде ниже я покажу как найти все изображения с расширением JPG, а jpg не выбирать.
Для начала создадим тестовую копию базы данных. Как видим из кода, изображение 2, 4, 7 имеют необходимое расширение.
-- -- Структура таблицы `item_photo` -- CREATE TABLE IF NOT EXISTS `item_photo` ( `item_photo_id` int(11) NOT NULL, `item_photo` text NOT NULL, PRIMARY KEY (`item_photo_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Дамп данных таблицы `item_photo` -- INSERT INTO `item_photo` (`item_photo_id`,`item_photo`) VALUES (1, 'image-1.jpg'), (2, 'image-2.JPG'), (3, 'image-3.jpg'), (4, 'image-4.JPG'), (5, 'image-5.jpg'), (6, 'image-6.jpg'), (7, 'image-7.JPG');А вот и сам SQL запрос
SELECT * FROM `item_photo` WHERE item_photo LIKE '%JPG' COLLATE utf8_binПример выполнения запроса в песочнице: http://sqlfiddle.com/#!9/d9afa/1/0