2012-12-05 94 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)