2010-08-12 128 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%'