group_concat 和 case when 的坑


SELECT size,instrument_id,
(CASE side
WHEN "sell" THEN
group_concat(id ORDER BY id)
END )as sell_ids,
(CASE side
WHEN "buy" THEN
group_concat(id ORDER BY id)
END) as buy_ids
FROM `okex_spot_orders` WHERE `okex_spot_orders`.`deleted_at` IS NULL GROUP BY size,instrument_id

 

SELECT size,instrument_id,group_concat(CASE side
WHEN "sell" THEN
id
END ) as sell_ids,
group_concat(CASE side
WHEN "buy" THEN
id
END ) as buy_ids
FROM `okex_spot_orders` WHERE `okex_spot_orders`.`deleted_at` IS NULL GROUP BY size,instrument_id

 

两条sql语句看起来查询的结果都是正确的,但是第一条查询出来的结果却是错误的,并且第一条语句5.7及以上版本还需要设置sql_model 去除 

only_full_group_by。而第二条却不用.

至于为什么第一条查询出来的数据是错的,本人暂时也不清楚。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM