2014-11-25 73 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