php-mysql多表异列搜索方法
我在网站上搜索,我总共有10个表需要搜索 我不想使用这样的多个查询:php-mysql多表异列搜索方法,php,mysql,Php,Mysql,我在网站上搜索,我总共有10个表需要搜索 我不想使用这样的多个查询: SELECT `manufacturer` FROM `auto` WHERE .... SELECT `city`,`address` FROM `estate` WHERE .... SELECT `title`,`content` FROM `news` WHERE .... ... and 6 more queries 相反,我想使用一个查询来获取所有需要的数据,并分配结果网站URL 我该怎么做?通常的方法是UNIO
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-进行构建索引和按索引搜索。这只是一个示例,如果有多个列需要搜索、更新,您甚至可以连接列值。您能告诉我们您将按哪些列进行搜索吗?给我们更详细的查询示例我不打算使用sphinx,服务器不支持这样的库。但我还有一点。使用单独的查询不是一个坏主意吗?那么我应该先查询哪个表?我是说顺序,如果文章中有更好的匹配项,为什么要先搜索新闻表呢。