【问题标题】:SQL SELECT WHERE row contains word [closed]SQL SELECT WHERE 行包含单词 [关闭]
【发布时间】:2014-12-17 22:04:06
【问题描述】:

我需要从包含单词limit 1的行中选择,然后将其回显。

例如,我在行中的类别超过1000 cars 其中200 具有相同的名称,我只想从每辆车中选择一个。

SELECT * FROM brands
WHERE car (bmw,audi,mercedes )

并按最新添加的排序

【问题讨论】:

  • 从this link开始到SQL教程
  • 显示一些你尝试过的代码。

标签: php mysql select


【解决方案1】:

没有重复

你要对mysql语句进行DISTINCT或GROUP BY:

声明:

SELECT DISTINCT(name) FROM cars

或

SELECT name FROM cars GROUP BY name

不返回重复名称

子查询

如其他答案所示,您可以使用 WHERE IN 过滤一组数据:

WHERE `column` IN ('item`1', 'item2', ..) 

您也可以使用它来进行子查询:

SELECT * FROM cars WHERE brandId IN (SELECT Id FROM brands WHERE name IN ('BMW', 'Volkwagen', ..)

参考:http://www.w3schools.com/sql/sql_in.asp

【讨论】:

    【解决方案2】:

    首先,您选择car,即IN('bmw', 'audi', 'mercedes')。要仅选择同一辆车一次,请使用GROUP BY car。最后你有这个查询:

    SELECT * FROM `brands` WHERE `car` IN ('bmw', 'audi', 'mercedes') GROUP BY `car` ORDER BY `date_added`
    

    【讨论】:

      【解决方案3】:

      试试这个:

      SELECT * FROM tableName
      WHERE columnName LIKE '%bmw%'
      OR columnName LIKE '%audi%'
      OR columnName LIKE '%mercedes%'
      

      您可以根据您的情况将OR 更改为AND 运算符。

      【讨论】:

        【解决方案4】:

        这将帮助你:

        SELECT * FROM brands WHERE car IN ('bmw' , 'audi' , 'mercedes') GROUP BY car ORDER BY date_added DESC
        

        【讨论】:

        • 我的回答同样的问题...:P
        猜你喜欢
        • 2012-12-26
        • 2018-03-03
        • 1970-01-01
        • 2012-12-26
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多