gpt4 book ai didi

mysql - 如何通过在另一个值之前选择一个值来使 MySQL 分组?

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:30 25 4
gpt4 key购买 nike

size   color    in_stock
----- ----- -----
small red 0
large red 1
xlarge red 1

当我使用 GROUP BY size,color 时,第一行 in_stock 0 被选中,而不是第二行。有什么方法可以让 GROUP BY 始终优先考虑 in_stock 1 的行,而不是 in_stock 0?

最佳答案

简短的回答是:否

我怀疑(因为您没有提供原始查询)您正在使用这样的东西:

SELECT size,color, in_stock
FROM atable
GROUP BY size,color

MySQL 允许 GROUP BY 子句仅包含几个非聚合列 - 但它仅通过服务器设置这样做

参见:http://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html

如果您使用此“功能”,则无法控制在其他非聚合列中选择的数据。

你不应该使用 MySQL 的这个“特性”,因为如果服务器设置关闭这个扩展,你的查询将不再有效。

你可以改为这样做:

SELECT size,color, MIN(case when in_stock = 1 then in_stock else NULL end)
FROM atable
GROUP BY size,color

关于mysql - 如何通过在另一个值之前选择一个值来使 MySQL 分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com