我想用最大的order_id來detele行,我試過這樣:刪除其中id是最大的
DELETE FROM orders WHERE MAX(order_id)
但這是錯誤的!任何其他想法?
謝謝你的時間。
我想用最大的order_id來detele行,我試過這樣:刪除其中id是最大的
DELETE FROM orders WHERE MAX(order_id)
但這是錯誤的!任何其他想法?
謝謝你的時間。
第一個想法(其中有不少人認爲有完全一樣的):
DELETE FROM orders
WHERE order_id =
(SELECT MAX(order_id)
FROM orders
)
不幸的是MySQL的抱怨有:
> ERROR 1093 (HY000): You can't specify target table 'orders' for update in FROM
> clause
兩種方式繞過錯誤:
DELETE FROM orders
WHERE order_id =
(SELECT maxo
FROM
(SELECT MAX(order_id) AS maxo
FROM orders
) AS tmp
)
或:
DELETE FROM orders
ORDER BY order_id DESC
LIMIT 1
它現在工作謝謝;) – TooCooL
你可以試試:
DELETE FROM orders where order_id = (select max(order_id) from orders)
嘗試:
DELETE FROM orders where order_id = (SELECT MAX(order_id) FROM orders)
我試過這個它沒有工作,但無論如何謝謝 – TooCooL
對於MySQL,這將是最簡單的:
DELETE FROM orders
ORDER BY order_id DESC
LIMIT 1;
你不能這樣做,其他幾個人都回答的子查詢招,因爲如果你從表中選擇MySQL不喜歡它並在同一查詢中更新/刪除它。
簡單而有效,這是要走的路:)沒有麻煩 – casraf
'WHERE order_id = MAX(order_id)'? –
不,它不工作 – TooCooL