为什么IFNULL()不在这里工作

时间:2012-11-08 06:00:04

标签: mysql sql

我正在检查列值是否为空,因为我需要向其添加1。这实际上是我的问题的后续跟进

My Previous Question

我在做

INSERT INTO posts (post_user_id, gen_id)  SELECT 1, IFNULL((MAX(gen_id)+1 FROM
posts),0);

这里有什么问题?

我不断收到某种错误。

2 个答案:

答案 0 :(得分:3)

尝试用COALESCE

替换它
INSERT INTO posts (post_user_id, gen_id) 
SELECT 1, COALESCE((MAX(gen_id)+1) ,0) 
FROM posts

IFNULL

INSERT INTO posts (post_user_id, gen_id) 
SELECT 1, IFNULL((MAX(gen_id)+1) ,0) 
FROM posts

答案 1 :(得分:1)

尝试案例

INSERT INTO posts (post_user_id, gen_id) values 
SELECT 1,
   case when gen_id IS null then (select MAX(gen_id) from posts)
   else 0 
   end