从多列中选择不同的

时间:2014-03-12 19:36:05

标签: php mysql

我有一张城市,州和拉链的表格,但是你知道有些城市有多个邮政编码。我想返回一个城市行,而不是所有拉链都与之相关。这是用于预测文本输入。

cities2 Table example
Colorado Springs | CO | 80910 | Colorado Springs, CO
Colorado Springs | CO | 80911
Colorado Springs | CO | 80912

{
$result = mysql_query("SELECT * FROM `cities2` WHERE `city` LIKE '$city%' LIMIT 5");
    while($row = mysql_fetch_array($result))
    $cities[] = $row['city'];
}

我想返回以" Colo"开头的前5个城市名称。但只有一个科罗拉多泉。

我希望我能解释清楚。

3 个答案:

答案 0 :(得分:0)

你只需要一个小组

SELECT * FROM `cities2` WHERE `city` LIKE '$city%' GROUP BY city LIMIT 5

您可以按照您希望与众不同的列进行分组。

答案 1 :(得分:0)

SELECT * 
  FROM cities2 
   WHERE city 
    LIKE '$city%' 
      GROUP BY city 
        LIMIT 5 

答案 2 :(得分:0)

来自我的肥皂盒:

  1. 使用聚合函数时仅使用GROUP BY。请改用DISTINCT
  2. 明确说明要返回的列,而不是*。
  3. 使用ORDER BY确保每次执行查询时都返回一致的结果
  4. 我的建议:

    SELECT DISTINCT city
    FROM cities2
    WHERE city like '$city%'
    ORDER BY city 
    LIMIT 5;