2013-05-16 37 views
0

我处于需要检查数据库中的任何表中是否存在特定记录的情况。检查数据库中的任何不同表中是否存在记录

所有表具有相同的结构,但创建不同表的原因仅仅是对它们进行分类。

我想做一个查询,检查是否存在任何表中的特定记录。看看联盟,我想这将是一个开销,因为我有大约100个不同的表,其中一些有30万条记录...

有人可以引导正确的方向......它也想知道Google搜索引擎做的事情......

谢谢

+1

为什么不使用称为'category'的新列对它们进行分类? –

+0

如果表格相同,为什么不创建一个类别字段并使用一个大表? – Melanie

+0

我应该做到了,但现在我的方式来回复这些东西:( – troy

回答

1

好吧,如果你只需要做一次,就可以生成一堆,你可以运行,看看其中是否实际上返回一些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}%'; 
0

首先在查询下面运行。例如,我有数据库命名测试。它包含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'。

如果您有任何问题,请让我知道。

相关问题