-1

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

4

3 回答 3

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."%'
于 2012-12-05T11:29:38.957 回答
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."%'
)

于 2012-12-05T11:42:44.873 回答
0

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

于 2012-12-05T11:49:46.550 回答