0

我正在尝试编写一个 SQL 查询,该查询在列中找到一个值并将其加一。例如:

 id | reply                          | comment_parent_id | order_by 
----+--------------------------------+-------------------+----------
  1 | Hello World I am a reply       |                 1 |        1 
  2 | Hello World I am a reply also  |                 1 |        2 
  3 | Hello World I am a reply also  |                 1 |        3 
  5 | Hello World I am a reply also  |                 2 |        1 

上面是我的表的一个例子。当我插入一个新行,comment_parent_id = 1然后插入的那一行order_by字段需要为 4。所以如果我插入另一个新行,comment_parent_id = 2那么order_by字段需要等于 2。我希望我解释得足够清楚。谢谢你的帮助。

4

2 回答 2

1
INSERT INTO table (reply, comment_parent_id, order_by)
SELECT @new_reply, @new_parent_id, IFNULL(MAX(order_by)+1, 1)
FROM table
WHERE comment_parent_id = @new_parent_id
于 2013-10-06T00:35:51.257 回答
0

尝试嵌套SELECT在您的INSERT-

INSERT INTO test
     SELECT NULL, 
            'Hello World I am a reply also', 
            ?, 
            count(comment_parent_id)+1 
     FROM test 
     WHERE comment_parent_id = ?;

?' 代表comment_parent_id您要插入的。

看到这个 SQLFiddle 例子 - http://sqlfiddle.com/#!2/d230f/1

于 2013-10-06T00:35:42.783 回答