我是mysql的新手,我需要一些帮助.我想从存在值的表中选择所有行,但不选择该值:
例如:
ID ITEM
--------------------
1 AA
1 22S
1 AB
2 F45
2 BB
3 1
3 1
3 AA
3 F45
3 F67
3 A
......
Run Code Online (Sandbox Code Playgroud)
类似于:SELECT ID,ITEM FROM TABLE1如果项目"AA"除了"AA"之外,它将返回:
1 225,AB
3 1,1,F45,F67,A
Run Code Online (Sandbox Code Playgroud)
这样做的实际查询是什么?谢谢
您可以使用group_concat()以下方式获取列表:
SELECT ID, group_concat(case when ITEM <> 'AA' then ITEM end)
FROM TABLE1
group by id
having sum(item = 'AA') > 0;
Run Code Online (Sandbox Code Playgroud)
该case语句确保该值不包含在最终列表中. group_concat()忽略NULL价值观.
该having子句确保'AA'返回的行至少有一个值.
编辑:
感谢Praveen:
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |