Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SELECT COUNT子查询返回null时插入到_Mysql_Sql_Sql Insert_Nested Query - Fatal编程技术网

Mysql 在SELECT COUNT子查询返回null时插入到

Mysql 在SELECT COUNT子查询返回null时插入到,mysql,sql,sql-insert,nested-query,Mysql,Sql,Sql Insert,Nested Query,我有一张桌子,里面有练习,每个练习在另一张桌子上有一些插图。我想插入插图,并保持它的“位置”属性秩序。 因此,当我添加插图时,“位置”属性等于给定练习的插图数量,因为位置从0开始 所以我试过这样的方法: 插入插图路径、创建日期、id练习、位置 价值观 2789c0bdda6981fadd87c30af74dfc5d.jpg, 1384104485, 4. 选择COUNTI.id 从插图一 其中I.id\u练习=4 按I.id\U分组练习 这个查询很好,但前提是我已经有了至少一个用于该练习的插图

我有一张桌子,里面有练习,每个练习在另一张桌子上有一些插图。我想插入插图,并保持它的“位置”属性秩序。 因此,当我添加插图时,“位置”属性等于给定练习的插图数量,因为位置从0开始

所以我试过这样的方法:

插入插图路径、创建日期、id练习、位置 价值观 2789c0bdda6981fadd87c30af74dfc5d.jpg, 1384104485, 4. 选择COUNTI.id 从插图一 其中I.id\u练习=4 按I.id\U分组练习 这个查询很好,但前提是我已经有了至少一个用于该练习的插图。否则子查询将返回null,我将获得以下错误:“position”列不能为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)
)

此外,分组方式也没有必要。

如果同时有两个插入,这是否有效?