Найти все заглавные буквы в столбцах?
-
13-09-2019 - |
Вопрос
При работе с MySQL, как я могу извлечь все строки, где столбец name полностью состоит из верхнего регистра?
Поскольку равенство не зависит от регистра, я не совсем уверен, как это сделать.
Решение
Если параметры сортировки вашего столбца не зависят от регистра, вы можете переопределить их в своем запросе:
SELECT * FROM my_table WHERE my_column COLLATE latin1_bin = UPPER(my_column);
СОПОСТАВЛЯТЬ предложение синтаксис.
Другие советы
SELECT * FROM my_table REGEXP '^[[:upper:]]+$';
SELECT * FROM table where binary your_field REGEXP '^[[:upper:]]+$'
Аналогично:
SELECT * FROM table where binary your_field REGEXP '^[[:upper:]]+$'
'binary' преобразует поле в двоичное, что необходимо для того, чтобы РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ учитывало регистр для большинства типов данных (за исключением двоичного, конечно).
[:character_class:]
обозначения задокументированы здесь - есть несколько других полезных классов персонажей.
оператор 'binary' задокументирован здесь.