Was*_* A. 6 mysql sql null group-by skip
select * from dc_deal group by collection_id
Run Code Online (Sandbox Code Playgroud)
在collection_id列中,我有值(1,3,3,4,4,5,NULL,NULL).上面的查询将返回带有(1,2,3,4,NULL)的行,但我想跳过对NULL值的分组,需要结果如(1,2,3,4,NULL,NULL)
spe*_*593 10
如果表中有唯一的列(或列集),则只需向GROUP BY添加另一个表达式即可.当GROUP BYnull为空时,表达式需要为每一行返回唯一值,否则返回一个常量.
假设collection_id表中有一个唯一的列,那么这样的事情:
... GROUP BY collection_id, IF(collection_id IS NULL, id, 0)
Run Code Online (Sandbox Code Playgroud)
当collection_id不为null时,GROUP BY中的第二个表达式返回一个常量值,但当collection_id为null时,它会为每一行返回一个唯一值.(请注意,id这里只是对在表中定义为唯一的列的引用,PRIMARY KEY是一个很好的候选者.如果单个列上没有唯一索引,那么您可以重复该类型唯一约束中每列的表达式,或每行保证唯一的任何表达式集合.
... GROUP BY collection_id
, IF(collection_id IS NULL, col1, '')
, IF(collection_id IS NULL, col2, NULL)
, IF(collection_id IS NULL, col3, collection_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13263 次 |
| 最近记录: |