在mysql数据库中只删除一条记录
问题描述:
从mysql数据库中只删除一条记录的正确方法是什么? 此查询用于只选择一条记录。在mysql数据库中只删除一条记录
SELECT * FROM Customers WHERE Country='Mexico' ORDER BY Country ASC LIMIT 1;
上面的查询运行正常。但是当替换选择删除不起作用。
DELETE FROM Customers WHERE Country='Mexico' ORDER BY Country ASC LIMIT 1;
我该如何解决?
答
如果你有一个id列,你可以使用子选择。我已经删除了订单,因为这将是相当像order by 'Mexico' asc
这是相当无用的。
DELETE FROM Customers
WHERE (CustomerID IN (SELECT CustomerID
FROM Customers where country = 'Mexico'
ORDER BY CustomerID ASC LIMIT 1)) ;
答
我想下面的查询会帮助你。你将需要有一些密钥ID来区分。
DELETE FROM Customers
WHERE SOME_KEY_ID IN
(
SELECT SOME_RANDOM_ID FROM
(
SELECT B.SOME_KEY_ID SOME_RANDOM_ID FROM Customers as B
where Country = 'Mexico'
LIMIT 1
) as c
) ;
注:需要内部的选择SOME_RANDOM_ID,否则sqlfiddle抛出错误This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery':
。
+0
@ adib16:查询接受为答案,甚至没有编译。这里请参考小提琴。
删除'ORDER BY国家ASC'从删除第 – 2014-11-25 11:44:44
因为我的原因,我无法将其删除 – adib16 2014-11-25 11:45:29
什么是删除一条记录错误 – argentum47 2014-11-25 11:47:00