2010-08-12 87 views
1

嘿家伙我只是想在多个表进行搜索(选择)查询,所以我写了娄代码:搜索多个MySQL表

SELECT s.title From table_stories s WHERE s.title = %$inputbox% 
    UNION 
    SELECT e.title From table_pages e WHERE e.title = %$inputbox% 

这是错误的使用UNION>?

+1

你错过身边'%$输入框%'引号只是错误。我也希望你能正常逃避$ inputbox – knittl 2010-08-12 08:58:24

+0

使用UNION没问题。您可能希望添加一个额外的列,以向每个查询添加一列来标识服务器从哪个TABLE返回数据。例如'Stories'作为TableName到第一个,'Pages'作为TableName到第二个在你的例子中 – Adrian 2010-08-12 09:02:48

回答

2

如果你在这里做什么,使用UNION是完全合理的。有什么特别的原因让你觉得它可能是错的?

0

UNION在那里很好。

0

这似乎是完全有效的。正如你所问,我认为它不能按预期工作。你想做别的事吗?如果你想在括号订购的结果,那么封闭查询

(SELECT s.title AS t From table_stories s WHERE s.title = %$inputbox%) 
UNION 
(SELECT e.title AS t From table_pages e WHERE e.title = %$inputbox%) 
ORDER BY t 
0

问题是不是在使用UNION,在条件

SELECT s.title AS t From table_stories s WHERE s.title like '%$inputbox%'