mysql以相同的名称显示组下的其他不同单元格数据

bf1o4zei  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(275)

假设我有一个存储注册用户数据的表,这些记录可能有相同的注册名称,但有不同的电子邮件,如下所示:

我想创建一个前视图来操作那些数据,但我不想那些同名的重复显示,可以通过mysql语句查询来输出这样的结果

这是目前为止,我可以做的结果,但它不能绑定到一个相同的名字。

select * from `register` 
    where `fullname` in ( 
              select `fullname` from `register` 
              group by `fullname` having count(*) > 1 
    )
tnkciper

tnkciper1#

你可以做的一件事就是 SELECT DISTINCT 并利用 GROUP_CONCAT(); 函数将所需的值连接到一行中,然后 GROUP BY fullname 得到你想要的订单。
注意,我还将用户id放入一个分组行中,以便您可以跟踪哪些id属于哪个名称。

SELECT
  DISTINCT fullname as full_name,
  GROUP_CONCAT(id SEPARATOR ', ') as user_ids,
  GROUP_CONCAT(email SEPARATOR ', ') as emails
FROM 
  tbl_register
GROUP BY
  tbl_register.fullname

工作sql fiddle
这样做是合乎逻辑的。希望这有帮助。:)
更多关于 GROUP_CONCAT(); 此处的函数:https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-康卡特

6yoyoihd

6yoyoihd2#

试试这个:

SELECT DISTINCT *duplicate_column* FROM *table_name1* WHERE *col_id* IN (SELECT *cols_to_dusplay* FROM *table_name1* GROUP_BY *duplicate_column*

相关问题