簡體   English   中英

PHP MySQL的多個表與不同的列搜索方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM