2012-12-05 63 views
-1

我使用的是SQL查询在PHP的搜索:在PHP中搜索相同的结果显示多次?

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只显示一次结果,而不是多次。

+0

所有结果是否相同,或者查询是否返回多个不同的行? –

+0

查询返回多个不同的行 –

回答

1

尝试

 

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."%' 
) 
 
1

尝试选择不同或使用一组。您可以使用下面的查询,也可以通过尝试使用一个元素来使用distinct或group,例如SELECT 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."%' 
+0

我也试过这个,但它也显示了与我上面提到的相同的结果 –

0
更多

描述性,
1. SELECT DISTINCT COLUMN_1(,COLUMN_2等)FROM TABLE_NAME
2. SELECT * FROM TABLE_NAME GROUP BY COLUMN_1(,COLUMN_2)