【问题标题】: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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多