簡體   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