我正在处理一个包含超过20,000条记录的相当大的数据库(MySQL),我需要删除一些精选的记录。例如,我删除了记录3106,我需要删除3107,3108,3207,3458,3414。我只是不知道如何多删除。
示例:
DELETE FROM `serial_codes` WHERE `serial_codes`.`SerialID` = 3106 LIMIT 1;
答案 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