[英]SQL Delete records in a loop
我想遍歷一個逗號分隔的 id 列表,並在 mysql 中將它們一一刪除。 像這樣:-
Begin
for idToDelete in (113,114) LOOP
delete from `myTable`
where `ID`=idToDelete;
END LOOP;
END;
我怎樣才能使這項工作? for in 的東西不起作用。
您可以使用IN
子句刪除多條記錄:
DELETE FROM `myTable` WHERE `ID` IN (YOUR COMMA SEPARATED IDS);
為什么需要循環?
如果您的 CSV 列表作為參數傳輸到查詢中 - 單個字符串文字,則使用
DELETE
FROM myTable
WHERE FIND_IN_SET(id, 'idsToDelete');
即特別顯示的情況
DELETE
FROM myTable
WHERE FIND_IN_SET(id, '113,114');
如果此列表在發送到 MySQL 之前立即插入到查詢文本中,請查看harish sharma提供的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.