Как сделать Case Sensitive сравнение в MySQL. Решение

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
8,206
Реакции
1,469
Credits
27,386
Как сделать Case Sensitive сравнение в MySQL. Решение

Небинарные строки (CHAR, VARCHAR, TEXT) в MySQL по умолчанию не чувствительны к регистру. Поэтому запрос SELECT * FROM enterprise WHERE company = ‘SPG‘ выведет все три строки.

Для вывода только одной записи с ‘SPG’ существуют следующие решения:

1. Приведение столбца к типу BINARY (т.к. тип BINARY чувствителен к регистру):
SQL:
SELECT * FROM enterprise WHERE BINARY company = ‘SPG‘;
2. Выбор чувствительного к регистру набора символов с помощью COLLATE:
SQL:
SELECT * FROM enterprise WHERE company COLLATE utf8mb4_0900_as_cs = ‘SPG‘;