我处于需要检查数据库中的任何表中是否存在特定记录的情况。检查数据库中的任何不同表中是否存在记录
所有表具有相同的结构,但创建不同表的原因仅仅是对它们进行分类。
我想做一个查询,检查是否存在任何表中的特定记录。看看联盟,我想这将是一个开销,因为我有大约100个不同的表,其中一些有30万条记录...
有人可以引导正确的方向......它也想知道Google搜索引擎做的事情......
谢谢
我处于需要检查数据库中的任何表中是否存在特定记录的情况。检查数据库中的任何不同表中是否存在记录
所有表具有相同的结构,但创建不同表的原因仅仅是对它们进行分类。
我想做一个查询,检查是否存在任何表中的特定记录。看看联盟,我想这将是一个开销,因为我有大约100个不同的表,其中一些有30万条记录...
有人可以引导正确的方向......它也想知道Google搜索引擎做的事情......
谢谢
好吧,如果你只需要做一次,就可以生成一堆,你可以运行,看看其中是否实际上返回一些SQL语句。显然用大括号替换你需要的东西。如果你需要反复这样做,那么一定要看看别的。
SELECT CONCAT('SELECT {something} from', GROUP_CONCAT(table_name) , 'where {something_else};')
AS statement FROM information_schema.tables
WHERE
table_schema = '{database_name}'
table_name LIKE '{myprefix}%';
首先在查询下面运行。例如,我有数据库命名测试。它包含5个具有相同结构的表格。 SELECT CONCAT( 'SELECT * FROM',TABLE_NAME '其中COL_NAME =价值', '联盟 ')FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA =' 测试'
在这里,你可以得到一个结果集,这样
SELECT * FROM消息UNION SELECT * FROM messaging1 UNION SELECT * FROM messaging2 UNION SELECT * FROM messaging3 UNION SELECT * FROM messaging4 UNION SELECT * FROM messaging5 UNION
运行这个结果集然后您可以从所有表中获取所需记录
注意:在查询结束时删除'UNION'。
如果您有任何问题,请让我知道。
为什么不使用称为'category'的新列对它们进行分类? –
如果表格相同,为什么不创建一个类别字段并使用一个大表? – Melanie
我应该做到了,但现在我的方式来回复这些东西:( – troy