[英]MySQL Query INSERT / SELECT / UPDATE last Row
我在 HTML POST 表单中有 3 个 MySQL 查询。 我想用我的 PHP 脚本更新我插入的最后一个插入行。
我遇到的问题是,它只是在每次第一行而不是我插入的最后一行时更新。
这是我目前的查询
INSERT INTO
tbl_orders (name,ordered,number,idcard,account)
VALUES
(:name,:carID,:number,:idcard,:account);
INSERT INTO
tbl_money (gesamtWert)
SELECT SUM(amount*price) total
FROM tbl_prices, tbl_car_pos
WHERE cid = :carID AND priceID = productID;
UPDATE
tbl_money
SET tbl_money.orderID = (SELECT tbl_orders.orderID FROM tbl_orders ORDER BY tbl_orders.orderID DESC LIMIT 1)
ORDER BY
orderID
DESC LIMIT 1;
第一个查询选择表单操作的值并将其插入到第一个表中。
第二个是对汽车的总价格求和并将其插入到第二个表中。
第三个现在应该 select 第一个查询的最后一个插入行,并从第二个查询更新最后一个插入行。 但正如我所说,它更新了第一行。
假设我已插入 ID 为 10 的最后一行,现在插入 ID 为 11 的新行,第三个查询将更新 ID:1 而不是 ID:11。 因此,如果有人能告诉我我的问题出在哪里,那就太棒了。
将第三个查询集成到第二个。
不优化,使用直接插入:
INSERT INTO
tbl_orders (name,ordered,number,idcard,account)
VALUES
(:name,:carID,:number,:idcard,:account);
INSERT INTO
tbl_money (gesamtWert, orderID)
SELECT SUM(amount*price),
(SELECT tbl_orders.orderID FROM tbl_orders ORDER BY tbl_orders.orderID DESC LIMIT 1)
FROM tbl_prices, tbl_car_pos
WHERE cid = :carID AND priceID = productID;
如果您使用 PHP,则有一个 function 返回最后插入的 ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.