MySQL选择*具有不同的id

Not*_*Jay 23 php mysql

我试图选择具有不同ID的行,但返回所有字段.

SELECT * DISTINCT(ID) FROM table WHERE ...
Run Code Online (Sandbox Code Playgroud)

我最终需要ID,City,State和Zip.如何获取不重复ID的行并将所有字段返回到myql_fetch_array?

我尝试过以下方法:

SELECT * DISTINCT(ID) FROM table WHERE ...

SELECT DISTINCT ID * FROM table WHERE ...

SELECT ID,City,State,Zip DISTINCT ID FROM ...

SELECT ID,City,State,Zip DISTINCT(ID) FROM ...
Run Code Online (Sandbox Code Playgroud)

我在这里读其他问题似乎没有任何帮助.提前致谢!

mel*_*okb 35

尝试使用GROUP BY:

  select id, city, state, zip
    from mytable
group by id
Run Code Online (Sandbox Code Playgroud)

请注意,id如果存在重复项,则会为每个地址返回一个任意地址.

演示:http://www.sqlfiddle.com/#!2/c0eba/1

  • @NotJay:我只想指出这是"GROUP BY"的非典型用法.主要目的是进行聚合,即每组查找MIN,MAX,SUM或其他汇总值.例如,您可以使用"GROUP BY"按月合并销售数据结果,以生成月度总计和平均值.我正在利用`mysql`允许你引用未在查询中分组的列这一事实,这在大多数其他数据库系统中是未定义的行为(不允许).干杯! (7认同)
  • @NotJay - 分组追逐到哪里 (5认同)