我正在處理一個相當大的數據庫(MySQL),超過20,000條記錄,我需要刪除一些選定的記錄。例如我刪除了記錄3106,我需要刪除3107,3108,3207,3458,3414。我只是不知道如何多次刪除。刪除MySQL中的範圍
例子:
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` = 3106 LIMIT 1;
我正在處理一個相當大的數據庫(MySQL),超過20,000條記錄,我需要刪除一些選定的記錄。例如我刪除了記錄3106,我需要刪除3107,3108,3207,3458,3414。我只是不知道如何多次刪除。刪除MySQL中的範圍
例子:
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` = 3106 LIMIT 1;
使用in
功能:
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` in (3106, 3107,...)
或OR
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` = 3106 or `serial_codes`.`SerialID` = 3107 or ...
你需要使用SQL in
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` in (3107,3108,3207,3458,3414)
最簡單的方法(如果您事先知道該ID)是使用IN()
。
expr IN (value,...)
實施例:
DELETE FROM `serial_codes`
WHERE `serial_codes`.`SerialID` IN (3016, 3107, 3108, 3207, 3458, 3414)
LIMIT
該子句可以省略作爲結果集要被刪除被限制到值在IN()
功能的量。
如果你有序貫的id被刪除(如1,2,3,...),真正的範圍,你也可以使用BETWEEN
expr BETWEEN min AND max
例子:
DELETE FROM `serial_codes`
WHERE `serial_codes`.`SerialID` BETWEEN 1 AND 10
爲什麼你用大寫字母(比如好的編碼風格)來寫所有的標記,而用小寫字母來寫「IN」呢?乾淨的代碼兄弟! – DanFromGermany
@DanFromGermany大寫標記從問題中複製而來。 – Jens
非常感謝,我只是試過這個,它很有魅力。同時也感謝大家對你的快速回應,你一直是一個真正的幫助。 – nathancording