Как найти все строки верхнего регистра в таблице MySQL?

Я сначала думал, что это тривиально. Затем подумал, что "binary" может это сделать. Я не уверен в этом.

Name
----
John
MARY
Kin
TED

Я хотел бы запросить только Мэри и Теда, которые находятся во всех верхнем регистре. Как бы я это запросил?

6 ответов


Если ваша сортировка нечувствительна к регистру, вам нужно использовать BINARY для сравнения:

SELECT *
FROM yourtable
WHERE Name = BINARY UPPER(Name)

см. его работу в интернете:sqlfiddle


вы просто использовать верхний()


попробуйте это:

select name from table where name=upper(name);

попробуйте это:

SELECT Name
FROM   table
WHERE  Name COLLATE latin1_general_cs LIKE UPPER(Name)
;

Использовать Ниже:

SELECT name FROM table WHERE name = BINARY UPPER(column_name);

Это также вернет числовые значения, но это не похоже на проблему для вашего имени столбца.

SELECT * FROM names WHERE 

ASCII(name) = ASCII(Upper(name))