我有一个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个查询执行此操作。有没有办法用一个查询来做到这一点?
答案 0 :(得分:1)
这样的事情怎么样?
SELECT IFNULL(MAX(order_id)+1,0) AS order_id FROM media WHERE playlist_id=?