Mysql合并行

Chr*_*s P 2 mysql group-by

我有这张桌子:

ip   country

1     A
2     A
3     B
4     B
4     B
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个查询,它将返回如下内容:

A 1,2
B 3,4
Run Code Online (Sandbox Code Playgroud)

例如SELECT * FROM table GROUP BY国家回报:

A 1
B 3
Run Code Online (Sandbox Code Playgroud)

但这不是理想的结果.

Ι可以运行这个简单的查询:

SELECT * FROM table ORDER BY ip
Run Code Online (Sandbox Code Playgroud)

并以编程方式编写类似于:

$c_ip=0;
`while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
if($row['ip'])!=$c_ip)
{
$c_ip=$row['ip'];
//new line!!
}else
{
//don't close <tr> code goes here
}
}`
Run Code Online (Sandbox Code Playgroud)

Mat*_*hai 12

试试这个:

SELECT country, GROUP_CONCAT(DISTINCT ip SEPARATOR ',') AS ips 
FROM my_table 
GROUP BY country
Run Code Online (Sandbox Code Playgroud)

SQL小提琴

  • 根据SQL Fiddle,它没有给出正确的答案.(4重复) (2认同)