我正在尝试创建一个查询,它将只在SELECT WHERE条件列中使用小写和大写字母混合的行。我的REGEXP需要什么调整?mySQL REGEXP在COLUMN_NAME中以大写字母选择information_schema.COLUMNS
我从下面的查询期望的结果是:
- book_of_the_Bible
- Bible_trivia_category_reference
我需要查询被重复使用其他数据库。我不想与REGEXP匹配“圣经”。
这是我的2次不成功的尝试:
SELECT `TABLE_NAME` , `COLUMN_NAME` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA="elve1522_elversiculodeldia" AND `COLUMN_NAME` != LOWER(`COLUMN_NAME`)
目前还没有结果
SELECT `TABLE_NAME` , `COLUMN_NAME` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA="elve1522_elversiculodeldia" AND (`COLUMN_NAME` COLLATE utf8_general_ci) REGEXP '^[A-Z]+$';
结果只有小写列名。它选择了32/63行。只有2行COLUMN_NAME包含大写字母,并且都没有被选中。
以供将来参考和堆栈溢出的用户的帮助下,正确的查询是:
SELECT `TABLE_NAME` , `COLUMN_NAME` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA="elve1522_elversiculodeldia" AND (`COLUMN_NAME` COLLATE utf8_bin) REGEXP '[A-Z]+[a-z]+' ;
您的正则表达式是一个或多个字符AZ,不允许有下划线... –