gpt4 book ai didi

mysql - 使用 SELECT COUNT 子查询返回 null 的 INSERT INTO

转载 作者:行者123 更新时间:2023-11-29 01:59:02 25 4
gpt4 key购买 nike

我有一张 table ,里面有练习,每个练习在另一张 table 上都有一些插图。我想插入插图并使用“位置”属性对其进行排序。因此,当我添加插图时,“位置”属性等于给定练习的插图数量(因为位置从 0 开始)。

所以我尝试了类似的东西:

INSERT INTO illustrations (path, date_creation, id_exercise, position) 
VALUES (
"2789c0bdda6981fadd87c30af74dfc5d.jpg",
"1384104485",
"4",
(SELECT COUNT(I.id)
FROM illustrations I
WHERE I.id_exercise = 4
GROUP BY I.id_exercise
)
)

此查询工作正常,但前提是我已经至少有一个练习插图。否则子查询返回 null 并且我收到此错误:“Column 'position' cannot be null”,这是合乎逻辑的。如果 select 子查询返回 null,我通常会放一个零。我尝试使用 ISNULL() 但找不到正确的语法。有什么建议吗?

最佳答案

使用COALESCE 将子查询的空结果更改为默认值。

INSERT INTO illustrations (path, date_creation, id_exercise, position) 
VALUES (
"2789c0bdda6981fadd87c30af74dfc5d.jpg",
"1384104485",
"4",
COALESCE((SELECT COUNT(I.id)
FROM illustrations I
WHERE I.id_exercise = 4
), 0)
)

GROUP BY 也是不必要的。

关于mysql - 使用 SELECT COUNT 子查询返回 null 的 INSERT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19893518/

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