删除MySQL中的范围

时间:2016-11-22 12:08:08

标签: mysql sql

我正在处理一个包含超过20,000条记录的相当大的数据库(MySQL),我需要删除一些精选的记录。例如,我删除了记录3106,我需要删除3107,3108,3207,3458,3414。我只是不知道如何多删除。

示例:

DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` = 3106 LIMIT 1;

3 个答案:

答案 0 :(得分:0)

您需要使用SQL的in

DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` in (3107,3108,3207,3458,3414)

答案 1 :(得分:0)

使用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 ...

答案 2 :(得分:0)

最简单的方法(如果您事先知道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