Вопрос

При работе с 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' задокументирован здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top