在匹配给定语句的列中查找最高值增加1

时间:2013-10-06 00:16:29

标签: mysql sql

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

 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 = 2order_by } field需要等于2.我希望我能够清楚地解释自己。谢谢你的帮助。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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