gpt4 book ai didi

mysql - MySQL 中 NULL 的情况

转载 作者:行者123 更新时间:2023-11-29 10:19:51 26 4
gpt4 key购买 nike

如果 item_to_inv 中的商品数量为 NULL,我尝试将其设置为 0

SELECT
i.`id`,
(
SELECT
SUM(
CASE
WHEN (
`quantity` < 0
OR `quantity` IS NULL
) THEN 0
ELSE `quantity`
END
) AS `quantity`
FROM
`item_to_inv`
WHERE
`item_id` = i.`id`
GROUP BY
`item_id`
) AS `quantity`
FROM
`item` AS `i`

以下项目 ID:5、8 和 10 在 item_to_inv 中没有记录

下面的 CASE WHEN 语句有什么问题?

CASE WHEN (`quantity` < 0 OR `quantity` IS NULL) THEN 0

enter image description here

最佳答案

case 语句没有任何问题,问题是对于 ids 5、8 和 10,您试图对不会返回 NULL 的值求和(请参阅 manual )。

您可以通过将查询更改为以下方式,使查询对这些 id 返回 0:

SELECT i.`id`
, (SELECT IFNULL(SUM(CASE WHEN (`quantity` < 0 OR `quantity` IS NULL) THEN 0 ELSE `quantity` END), 0) AS `quantity` FROM `item_to_inv` WHERE `item_id` = i.`id` GROUP BY `item_id`) AS `quantity`
FROM `item` AS `i`

关于mysql - MySQL 中 NULL 的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491123/

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