我必须从max(id)
的表格中删除MySQL
行。
我正在使用query ::
DELETE
FROM master
WHERE id=(
SELECT MAX(id)
FROM master)
但获得error No. 1093
。
任何人都可以帮助我吗?
答案 0 :(得分:6)
您无法在update
子句中为FROM
指定目标表。
您可以删除最后一行,如下所述。
DELETE FROM master ORDER BY id DESC LIMIT 1
答案 1 :(得分:0)
您无法修改从子查询中选择数据的同一个表。
试试这个 -
DELETE m.*
FROM master m
WHERE id IN (SELECT id_temp from(
SELECT MAX(id) as id_temp
FROM master) x)
答案 2 :(得分:0)
您无法在
中为Delete
FROM clause
指定目标表
试试这个
DELETE FROM master
WHERE id IN (SELECT A.MAXid FROM
(SELECT MAX(id) as MAXid FROM master) A
)
答案 3 :(得分:0)
DELETE FROM Test WHERE id IN(SELECT MAX(id) FROM Test);
这似乎是跨SQL的供应商友好。 MySQL中的LIMIT选项在SQL SERVER中变成了这个。
DELETE FROM Test WHERE id IN(SELECT TOP 1 id FROM Test ORDER BY id DESC );
请参阅here