繁体   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