[英]php mysql multiple table with different columns search approach
我正在網站上進行搜索,我總共應該搜索10個表。
我不想使用這樣的多個查詢:
SELECT `manufacturer` FROM `auto` WHERE ....
SELECT `city`,`address` FROM `estate` WHERE ....
SELECT `title`,`content` FROM `news` WHERE ....
... and 6 more queries
相反,我想使用一個查詢來獲取所有需要的數據並分配結果網站URL。
我應該如何表現?
通常的方法是UNION
查詢
SELECT * FROM (
(
SELECT `manufacturer` AS sval FROM `auto` WHERE ....
)
UNION
(
SELECT CONCAT(`city`,`address`) AS sval FROM `estate` WHERE ....
)
UNION
(
SELECT CONCAT(`title`,`content`) AS sval FROM `news` WHERE ....
)
)
用法分隔查詢是一個很好的解決方案。 如果要在一個查詢中使用所有表,則所有表將在查詢時間鎖定。 而且,如果您將使用LIKE或全文搜索,那么您將無法鎖定自己的網站。
您可以對每個表使用單獨的查詢。 或者,您可以在索引之外進行搜索。 例如,您可以使用sphinx-建立索引並按索引搜索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.