0

1 を追加する必要があるため、列の値が空白かどうかを確認しています。これは実際に私の質問hereのフォローアップです

私の以前の質問

私がやっている

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

ここで何が問題なのですか?

なんらかのエラーが発生し続けます。

4

2 に答える 2

4

で置き換えてみてください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
于 2012-11-08T06:02:29.453 に答える
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
于 2012-11-08T06:06:27.077 に答える