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

时间:2012-12-05 11:25:48

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

3 个答案:

答案 0 :(得分: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."%'

答案 1 :(得分: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."%'
)

答案 2 :(得分:0)

更具描述性,
1. SELECT DISTINCT column_1(,column_2等)FROM table_name
2. SELECT * FROM table_name GROUP BY column_1(,column_2)