mysql - 删除 mysql group_concat 选定的行

标签 mysql

尽管这个问题是两年前提出的,但解决方案并未使用 group_concat。因此,请在表格中保持简短

id    name
1     Tim
2     Sam
3     Bob
4     Joe
5     Ali
6     Kay
7     Bob
8     Joe

运行以下内容

select name, count(*) c, group_concat(id) rows
  from table
 group by name
having c > 1;

给出

name   c   rows
Bob    2   3,7
Joe    2   4,8

是否可以在不编写脚本的情况下从我的表中删除第 3、7、4 和 8 行?我认为我确实需要使用 group_concat 因为实际上我的“名称”列是表中三列的串联。

最佳答案

SELECT count(`access`.id) as 
extra_access,`access`.perm_role_id,group_concat(temp.extra_id) as extra_ids
FROM `access`  
INNER JOIN(  
SELECT `access`.id,perm_role_id,perm_module_id,group_concat(id) as extra_id
FROM `access`
GROUP BY perm_role_id,perm_module_id     
HAVING COUNT(id) =1  
)temp ON access.id= temp.id GROUP BY perm_role_id

为此再次使用 join 并再次 concat

关于mysql - 删除 mysql group_concat 选定的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38227681/

相关文章:

mysql - 四舍五入到最接近的 0.49 或 0.99

mysql - 如何通过 MySql 中的选择查询为组生成计数查询

Python导入MySQLdb : Library not loaded: libmysqlclient. 18.dylib

MySQL查询将数据分组到不同的范围

mysql - SQL 注入(inject)陷阱 - 这意味着什么

php - 在 RDBMS 中将 ids 存储为逗号分隔的字符串是否有任何性能原因?

Mysql触发器将数据从一个表传递到另一个匹配表

mysql - 离开加入具体条件请帮助

php - 关于具有多个选项的多个项目的订单表的问题

c# - mysql 在 c# 上选择错误,但在 navicat 中的查询生成器上运行