SQL SELECT 和 UPDATE 同时进行


SQL SELECT and UPDATE at the same time

我有一个非常简单的选择,看起来像这样:

SELECT path FROM items WHERE id = 17

现在在表中items还有一个列count,我希望每次执行上述查询时都递增。

执行此操作的最佳方法是什么?

同一个查询中没有办法做到这一点。

你可以做这样的事情:

START TRANSACTION;
UPDATE ....
SELECT ....
COMMIT;

您需要创建一个存储过程,然后使用

START TRANSACTION;
UPDATE items set count = (SELECT MAX(count)+1 from items);
SELECT path FROM items WHERE id = 17;
COMMIT;

尝试将更新和选择组合成一个调用,应该返回来自 SELECT 的响应

UPDATE items SET count = count + 1; SELECT path FROM items WHERE id = 17