所有表中的检查ID都具有前缀table_

时间:2018-09-04 14:07:11

标签: php mysql sql

嘿,我在sql中遇到问题,我想检查所有表中的ID是否都带有前缀“ table_”,我使用了此查询,但不起作用。

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'table_%'

2 个答案:

答案 0 :(得分:2)

在下划线之前添加反斜杠。

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE  'table\_%'

没有反斜杠
enter image description here

带有反斜杠
enter image description here

这是为什么:

  

SQL模式匹配使您可以使用“ _”来匹配任何单个字符,使用“%”来匹配任意数量的字符(包括零个字符)。

答案 1 :(得分:1)

我正在使用此查询来获取具有特定列的所有表:

SELECT * FROM INFORMATION_SCHEMA.columns where TABLE_NAME IN (
    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_NAME LIKE  'table_%' and TABLE_SCHEMA='<your_db_name>'
)
AND COLUMN_NAME='id'

不确定这是否是您想要的,因为问题有点模糊

P.S:运行MariaDB