Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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中搜索相同的结果显示多次?_Php_Sql_Search_Select - Fatal编程技术网

在PHP中搜索相同的结果显示多次?

在PHP中搜索相同的结果显示多次?,php,sql,search,select,Php,Sql,Search,Select,我使用PHP中的SQL查询进行搜索: SELECT * FROM vendor, branches WHERE branches.vendor_id = vendor.vendor_id AND vendor.name LIKE '%".$query."%' OR vendor.description LIKE '%".$query."%' OR branches.city LIKE '%".$query."%' 它多次显示结果。如果找到结果,我希望PHP只显示一次,而不是多次。尝试选择dis

我使用PHP中的SQL查询进行搜索:

SELECT *
FROM vendor, branches
WHERE branches.vendor_id = vendor.vendor_id
AND vendor.name LIKE '%".$query."%'
OR vendor.description LIKE '%".$query."%'
OR branches.city LIKE '%".$query."%'

它多次显示结果。如果找到结果,我希望PHP只显示一次,而不是多次。

尝试选择distinct或使用group by。如果您使用的是distinct或group by,也可以使用下面的查询。请尝试使用一个元素,例如选择id而不是SELECT*

SELECT * FROM vendor as VTable 
WHERE vendor.name LIKE '%".$query."%' 
AND VTable.vendor_id = (SELECT TOP 1 FROM branches as BTable WHERE BTable.vendor_id = VTable.vendor OR BTable.city LIKE '%".$query."%')
OR vendor.description LIKE '%".$query."%'
试一试

更具体地说,
1.从表名称中选择不同的列1(、列2等)

2.选择*FROM table_name GROUP BY column_1(,column_2)

我也尝试过,但它也会显示与我前面提到的相同的结果。所有结果是否相同,或者查询是否返回多个不同的行?查询返回多个不同的行

SELECT * FROM vendor INNER JOIN branches ON branches.vendor_id = vender.vendor_id
WHERE (
    vendor.name LIKE '%".$query."%'
    OR vendor.description LIKE '%".$query."%'
    OR branches.city LIKE '%".$query."%'
)