gpt4 book ai didi

mysql - Mysql结果集中的偏好

转载 作者:行者123 更新时间:2023-11-29 15:33:54 24 4
gpt4 key购买 nike

在 Mysql 中执行以下查询时,我收到多条记录。

SELECT * 
FROM catalog_product_entity_int
WHERE attribute_id = 99
and row_id = 378050

+----------+--------------+----------+--------+-------+
| value_id | attribute_id | store_id | row_id | value |
+----------+--------------+----------+--------+-------+
| 12101931 | 99 | 0 | 378050 | 4 |
| 21858725 | 99 | 3 | 378050 | 1 |
| 21861516 | 99 | 4 | 378050 | 1 |
+----------+--------------+----------+--------+-------+

我需要一个查询来获取 store_id 3 的值,如果 store_id 3 不存在,则获取 store_id 0 的值。

最佳答案

请尝试一下

SELECT 
IF((SELECT Count(*) FROm catalog_product_entity_int WHERE store_id = 3) > 0,value ,
IF((SELECT Count(*) FROm catalog_product_entity_int WHERE store_id = 0) > 0,value ,0)) value
FROM catalog_product_entity_int
WHERE attribute_id = 99
and row_id = 378050
GROUP BY row_id

如果所选行中有这样的行,则将首先选择 store_id 3 的值。然后它尝试获取 store_id 0 的值,如果也失败,则值为 0

您必须检查最后一部分,如何检测您的选择中既没有 store_id 3 也没有 store_id 0。

应该控制group by子句。最终 attribute_id 可能会更好

关于mysql - Mysql结果集中的偏好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58448301/

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