gpt4 book ai didi

mySQL REGEXP to SELECT information_schema.COLUMNS 在 COLUMN_NAME 中使用大写字母

转载 作者:行者123 更新时间:2023-11-29 06:27:08 24 4
gpt4 key购买 nike

我正在尝试创建一个查询,该查询将仅选择指定 WHERE 条件列中大小写字母混合的行。我的 REGEXP 需要什么调整?

我期望从下面的查询中得到的结果是:

  • 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 包含大写字母且均未被选中。

为了将来引用和在 Stack Overflow 用户的帮助下,正确的查询是:

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]+' ;

最佳答案

要按大小写识别您的值,您需要使用 collat​​e utf8_bin 而不是 utf8-general_ci,它不关心大小写。

查找同时包含大写和小写的混合名称:

WHERE (CNAME COLLATE utf8_bin) REGEXP '[A-Z]+[a-z]+' 

您的过滤器 "^[A-Z]+$' 基本上过滤掉了所有带有非英文字符(如空格、下划线...)的标题。

关于mySQL REGEXP to SELECT information_schema.COLUMNS 在 COLUMN_NAME 中使用大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com