如果存在行,则MySql获得最低行值并增加1

时间:2017-03-03 16:51:15

标签: mysql

我有一个order_id字段,其中应包含唯一值(0或更高)。

 $stmt = $db->prepare("SELECT MAX(order_id) AS order_id FROM media WHERE playlist_id=?");
 $stmt -> bind_param("i", $playlist_id);
 $stmt -> execute();
 $result = $stmt->get_result();
 $order = $result->fetch_assoc();
 $max_order_id = intval($order['order_id']);

我在插入新行之前运行此查询,并且在第一行插入时返回0并且效果很好。但是,下次我想插入新行时,它也会返回0,在这种情况下,我想将此值增加1,仅当至少有一行已存在时。

 $max_order_id+=1;

如果我问另一个查询中有多少行,我可以用2个查询执行此操作。有没有办法用一个查询来做到这一点?

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

SELECT IFNULL(MAX(order_id)+1,0) AS order_id FROM media WHERE playlist_id=?