【问题标题】:SQL SELECT and UPDATE at the same timeSQL SELECT 和 UPDATE 同时进行
【发布时间】:2015-05-18 21:00:02
【问题描述】:

我有一个非常简单的 SELECT,如下所示:

SELECT path FROM items WHERE id = 17

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

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

【问题讨论】:

标签: php mysql sql


【解决方案1】:

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

你可以这样做:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-01
        • 2014-07-24
        • 1970-01-01
        相关资源
        最近更新 更多