2011-10-06 38 views
1
table1 
ID 
SUBJECT 
CONTENT 

table2 
ID 
SUBJECT 
CONTENT 

table3 
ID 
SUBJECT 
CONTENT 

... 5 more 

我想对所有表MySQL的多功能表搜索

搜索 SUBJECT

我怎样才能做到这一点?

+0

这些表是否都是相同的结构?如果是这样,为什么他们不被标准化为一张桌子?如果不是,你打算如何组合结果?您是在进行全文搜索还是仅仅进行常规搜索? – mellamokb

+0

与表格相同的结构但不同的内容。 – Awersione

回答

0
select * from table1 where subject like '%match%' union 
select * from table2 where subject like '%match%' union 
select * from table3 where subject like '%match%' union 
select * from table4 where subject like '%match%' union 
select * from table5 where subject like '%match%' union 
select * from table6 where subject like '%match%' union 
select * from table7 where subject like '%match%' union 
select * from table8 where subject like '%match%' 
2
CREATE VIEW multitable AS 
SELECT * FROM table1 
UNION SELECT * from table2 
UNION SELECT * from table3; 

SELECT subject FROM multitable ... 
+0

它的工作,但我的分贝总大小1.5 GB,这种方法等待很多。 你有什么想法吗? – Awersione

+0

性能如何与此处提出的其他解决方案相比较?什么'EXPLAIN SELECT主题来自多个...'说?在其他解决方案上运行'EXPLAIN'是什么意思?请注意,您还可以使用'SET profiling = 1','SELECT ...','SHOW PROFILES'来分析查询。 – unutbu

0

因为所有的表都具有相同的语法,你可以使用UNION操作。

SELECT * FROM Table1 
UNION Table2 
UNION Table3 
UNION Table4 
UNION Table5 
UNION Table6 
UNION Table7 
UNION Table8 
WHERE SUBJECT="Subject" 

为了简单起见,8个表格并没有太多要写出来。如果你有更多,我会推荐dynamic query