簡體   English   中英

在mySQL中,如何在一個查詢中獲取並設置值?

[英]In mySQL, how do I get and set a value in one query?

我試圖獲取表中最高的“行序號”,將其設置為變量,將其遞增,然后將其與新數據一起作為新記錄插入。 該腳本使用PHP,$ SQL用於mySQL

$SQL="  
      BEGIN
        DECLARE lineOrder INT DEFAULT 1;
        SET lineOrder = (
           SELECT IFNULL(`Line Order`,1)
           FROM `router`
           ORDER BY `Line Order` DESC
           lIMIT 1);
        lineOrder = lineOrder + 1;
        INSERT INTO `router`(`Line Order`, `Estimated Time`,
                               `Estimated Time Unit`, `Work Center`,
                               `Work Description`)
        VALUES (lineOrder,?,?,?,?);
      END;
    ";
$stmt = $GLOBALS['mySQLConnection']->prepare($SQL);
echo $GLOBALS['mySQLConnection']->error;

這是錯誤:SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第2行的'SET lineOrder =(SELECT IFNULL( Line Order ,1)FROM router '附近使用

INSERT INTO `router` (`Line Order`,
     `Estimated Time`, `Estimated Time Unit`, `Work Center`, `Work Description`)
SELECT 1 + IFNULL(MAX(`Line Order`), 0),
     ?, ?, ?, ?
FROM `router`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM