Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-mysql多表异列搜索方法_Php_Mysql - Fatal编程技术网

php-mysql多表异列搜索方法

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

我在网站上搜索,我总共有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-进行构建索引和按索引搜索。

这只是一个示例,如果有多个列需要搜索、更新,您甚至可以连接列值。您能告诉我们您将按哪些列进行搜索吗?给我们更详细的查询示例我不打算使用sphinx,服务器不支持这样的库。但我还有一点。使用单独的查询不是一个坏主意吗?那么我应该先查询哪个表?我是说顺序,如果文章中有更好的匹配项,为什么要先搜索新闻表呢。