Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多个列中选择不同的_Php_Mysql - Fatal编程技术网

Php 从多个列中选择不同的

Php 从多个列中选择不同的,php,mysql,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 `cit

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

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'];
}
我想返回前5个以“Colo”开头的城市名称,但仅返回1个colorado springs


我希望我解释得很好。

你只需要一个小组

SELECT * FROM `cities2` WHERE `city` LIKE '$city%' GROUP BY city LIMIT 5
您可以按您想要区分的列进行分组。

从我的soapbox:

SELECT * 
  FROM cities2 
   WHERE city 
    LIKE '$city%' 
      GROUP BY city 
        LIMIT 5 
  • 使用聚合函数时,仅使用分组依据。改用
    DISTINCT
  • 明确说明要返回的列,而不是*
  • 使用
    ORDER BY
    确保每次执行查询时返回一致的结果
  • 我的建议是:

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

    太好了,忘了小组,只是想清楚了。没问题,祝你好运!