嘿,我在sql中遇到问题,我想检查所有表中的ID是否都带有前缀“ table_”,我使用了此查询,但不起作用。
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'table_%'
答案 0 :(得分:2)
在下划线之前添加反斜杠。
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'table\_%'
这是为什么:
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