【问题标题】:Search in PHP same result displays many times?在 PHP 中搜索相同的结果显示多次?
【发布时间】:2012-12-05 11:25:48
【问题描述】:
我在 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 显示结果,如果找到,只显示一次,而不是多次。
【问题讨论】:
标签:
php
sql
search
select
【解决方案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】:
尝试选择不同的或使用分组依据。您可以使用下面的查询,如果您使用 distinct 或 group,请尝试使用一个元素,例如选择 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."%'
【解决方案3】:
更具描述性,
1. SELECT DISTINCT column_1(, column_2, etc) FROM table_name
2. SELECT * FROM table_name GROUP BY column_1(, column_2)