我想遍历逗号分隔的ID列表,并在mysql中将它们一一删除。像这样的东西:-
Begin
for idToDelete in (113,114) LOOP
delete from `myTable`
where `ID`=idToDelete;
END LOOP;
END;
我该如何进行这项工作? for in不能正常工作。
答案 0 :(得分:1)
您可以使用IN
子句删除多个记录:
DELETE FROM `myTable` WHERE `ID` IN (YOUR COMMA SEPARATED IDS);
为什么需要循环?
答案 1 :(得分:1)
如果您的CSV列表作为参数(单字符串文字)传输到查询中,请使用
DELETE
FROM myTable
WHERE FIND_IN_SET(id, 'idsToDelete');
即
DELETE
FROM myTable
WHERE FIND_IN_SET(id, '113,114');
如果此列表在发送给MySQL之前立即插入查询文本中,请查看harish sharma提供的解决方案。