您可以使用INSERT INTO ... SELECT語句來完成您的需求。這樣可以避免同一資料表在INSERT中出現兩次。假設您的DataLimit資料表結構和數據如下:
CREATE TABLE DataLimit (
id INT AUTO_INCREMENT PRIMARY KEY,
a INT,
b INT
);
INSERT INTO DataLimit (a, b) VALUES (1, 100);
現在,您要插入一筆新資料,a欄位為1,而b欄位取前一筆相同欄位的值,可以使用以下SQL語句:
INSERT INTO DataLimit (a, b)
SELECT 1, b FROM DataLimit ORDER BY id DESC LIMIT 1;
這個語句中,我們使用了INSERT INTO ... SELECT語法,其中SELECT子句用來獲取前一筆資料中b欄位的值。這樣就能將新資料插入到DataLimit資料表中,同時又獲取了前一筆資料中的b欄位值來填充這一筆資料的b欄位。
請確保在執行這個INSERT語句之前,DataLimit資料表中已經存在至少一筆資料,否則子查詢將無法取得前一筆資料,可能會產生錯誤。