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