我有一个或多个寄存器作为选择的结果,我需要删除其中一个.... 怎么做?
从xxx删除id
[[1 of]]
(SELECT id
FROM xxx WHERE usuario_id
= 1 AND disco_id
= 1)
答案 0 :(得分:0)
DELETE
FROM xxx
WHERE usario_id=1
AND disco_id=1
LIMIT 1
N.B。这将删除与条件匹配的未确定行。
如果您想选择删除的内容,可以使用ORDER BY
,例如删除最早创建的记录:
DELETE
FROM xxx
WHERE usario_id=1
AND disco_id=1
ORDER BY created_temporal_field ASC /* Or an auto_incremented id */
LIMIT 1
答案 1 :(得分:0)
试试这段代码:
DELETE FROM xxx WHERE id =(SELECT id FROM xxx WHERE usuario_id=1 AND disco_id=1 order by id desc limit 1)
作为选择的结果,您有一个或多个寄存器,并且您希望删除其中一个。只需通过limit
来研究一行,就可以得到上面的代码。
答案 2 :(得分:-1)
通常TOP 1是个好主意。
SELECT TOP 1表示只要找到一个项目,表扫描就会停止。
DELETE FROM xxx WHERE id =(SELECT TOP 1 id FROM xxx WHERE usuario_id=1 AND disco_id=1)