Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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
Mysql 按城市名称分组,在第一行仅显示一次相同的城市名称_Mysql_Sql_Group By - Fatal编程技术网

Mysql 按城市名称分组,在第一行仅显示一次相同的城市名称

Mysql 按城市名称分组,在第一行仅显示一次相同的城市名称,mysql,sql,group-by,Mysql,Sql,Group By,我有一张桌子 city|locality a | bc a | dc a | ef a | gh a | ij 我想创建一个group by,以便它显示 a |bc |dc |ef |gh |ij 我目前正在使用 select(*) from 'tablename' group by city; 但是它只得到一个局部值。您可以通过编写两个查询来尝试 select distinct (city) from 'tablename'; 然后你将城市

我有一张桌子

city|locality
a   |  bc
a   |  dc
a   |  ef
a   |  gh
a   |  ij
我想创建一个group by,以便它显示

a |bc
  |dc
  |ef
  |gh
  |ij
我目前正在使用

select(*) from 'tablename' group by city;

但是它只得到一个局部值。

您可以通过编写两个查询来尝试

select distinct (city) from 'tablename';
然后你将城市作为“a”

select * from tablename where city='a';// 'a' means out put of first query 

不太确定这是否是您想要的,但是如果您想要在一个新单元格中获取
a
locality
的所有行,您可以使用它

SELECT *, GROUP_CONCAT(locality) as localities FROM table GROUP BY city
这将输出:

city    localities 
a       bc, dc, ef, gh, ij
试试这个

select col1, GROUP_CONCAT(col2 SEPARATOR ';') from tablename;
它将为您提供如下结果:

公元前124年;dc;环境足迹;生长激素;ij


现在用你自己的方式使用它。

解决方案是只使用:

select city, locality from yourtable order by city, locality
然后,如果值发生变化,则只需打印/使用
city
即可解决演示层中的问题

类似于(在Java中):

String previousCity=null;
while(rs.next()){
字符串currentCity=rs.getString(“城市”);
if(Objects.equals(previousCity,currentCity){
//同上:无需打印,因此设置为空
字符串currentCity=“”;
}否则{
前一城市=当前城市;
}
System.out.println(currentCity+“|”+rs.getString(“locality”);
}

这不能由sqlreally来完成,left join呢?@ReubenGomes你曾经得到一个完整的行而不是一个空白和一个值
a
下的空单元格是否有意义,或者你对所有返回的单元格中的
a
是否满意?是的,我在我的php/html元素上使用它时,必须显示一个带有t的选择列表另一个必须显示所有区域…我考虑过发送2个sql语句,但这似乎不太有效,但它确实解决了问题…问题是我必须运行一个清理函数来逐行打印我的脚本中的loacalities为什么不在输出中用PHP解决这个问题?是的,我只是这样做了,使我更容易与//有关的是值之间的分隔符…我突然想到,如果我真的想得到我想要的东西,那么我的数组会是什么样子?这真的很低效