查找列中的所有大写字母?

时间:2009-09-23 17:52:19

标签: sql mysql case-sensitive

使用MySQL时,如何获取name列全部为大写的所有行?

由于相等不区分大小写,我不太清楚如何做到这一点。

3 个答案:

答案 0 :(得分:4)

如果您的列排序规则不区分大小写,则可以在查询中覆盖它:

SELECT * FROM my_table WHERE my_column COLLATE latin1_bin = UPPER(my_column);

COLLATE clause语法。

答案 1 :(得分:2)

SELECT * FROM my_table REGEXP '^[[:upper:]]+$';

答案 2 :(得分:1)

SELECT * FROM table where binary your_field REGEXP '^[[:upper:]]+$'

类似地:

SELECT * FROM table where binary your_field REGEXP '^[[:upper:]]+$'

'binary'将字段转换为二进制,这对于REGEXP大多数数据类型(当然除了二进制)都是区分大小写是必需的。

记录了{p> [:character_class:]符号here - 还有其他一些有用的字符类。

'binary'运算符记录在案here