2014-11-25 70 views
0

从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; 

我该如何解决?

+1

删除'ORDER BY国家ASC'从删除第 – 2014-11-25 11:44:44

+0

因为我的原因,我无法将其删除 – adib16 2014-11-25 11:45:29

+0

什么是删除一条记录错误 – argentum47 2014-11-25 11:47:00

回答

4

如果你有一个id列,你可以使用子选择。我已经删除了订单,因为这将是相当像order by 'Mexico' asc这是相当无用的。

DELETE FROM Customers 
WHERE (CustomerID IN (SELECT CustomerID 
        FROM Customers where country = 'Mexico' 
        ORDER BY CustomerID ASC LIMIT 1)) ; 
0

我想下面的查询会帮助你。你将需要有一些密钥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':

Reference FIDDLE Here

+0

@ adib16:查询接受为答案,甚至没有编译。这里请参考小提琴。 。你确定在尝试后接受“溢出”的答案吗? – 2014-11-25 12:32:16