繁体   English   中英

MySQL 查询 INSERT / SELECT / UPDATE 最后一行

[英]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。

https://www.php.net/manual/ro/function.mysql-insert-id.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM