php - 插入行,其单元格数量取决于前一行单元格数量

标签 php mysql

我有一个系统余额表“A”,其中“金额”列是借方/贷方列,如下所示:

id amount balance 
1  100    100 
2  -30    70 
3  40     110
4  -20    90

如果新存款为 50 美元,则必须插入新行:

5  50      140

我可以通过选择最后的余额来实现这一点:

SELECT id, balance
FROM A
ORDER BY id DESC LIMIT 1

然后插入新行:

INSERT INTO A (amount, balance)
VALUES (50, previous_balance+50)

但是,有没有一种方法可以仅通过一个查询来实现这一目标?它对大型数据库有效吗?谢谢!

最佳答案

正确的做法是:

INSERT INTO A(amount,balance) 
VALUES (50, 50 + 
    (SELECT B.balance 
    FROM(SELECT balance FROM A ORDER BY id DESC LIMIT 1) AS B) 
);

因为 mysql 无法修改您在 SELECT 部分中使用的同一个表

关于php - 插入行,其单元格数量取决于前一行单元格数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42621562/

相关文章:

php - Javascript 日期选择器在 ajax 中不起作用

php - 从叶子遍历到表中的一个或多个父节点

php - php mysql 中的各种输入项

php - 最近查看的页面 "you haven' 尚未查看页面”

PHP cURL 自定义 header

MySQL Workbench - 过滤日期

php - Yii 过滤器未显示在 CGridView 中

php - jQuery UI 自动完成不显示结果

javascript - jQuery 语法,没有特定 ID 的问题

php - 1 个操作中的 3 个查询取决于每个查询