簡體   English   中英

SQL 循環刪除記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM