如何使用"in"删除多个记录(通过使用参数)



我试图在一个语句中删除多个记录我使用以下Sql:

DELETE FROM `tblregs2` WHERE `RegdID` IN (@RegdID)

和我在执行代码期间收集参数值,并将值保存在字符串变量中。

但是我得到的结果是:"1,2,3,4"因此SQL语句将是:

DELETE FROM `tblregs2` WHERE `RegdID` IN ("1,2,3,4")

但"in"它不接受双引号,所以我需要像1,2,3,4这样使用

DELETE FROM `tblregs2` WHERE `RegdID` IN (1,2,3,4)

如何得到这样的结果?

顺便说一下,代码使用的是"FIND_IN_SET"但是我正在使用两种数据库类型(MySQL + SQLite),所以"In"两者都可以

我真不敢相信我会这么说,但不要使用参数。如果你正在为你的字符串解析每个数字,你应该避免Sql注入。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim s = "1,2,3,4"
Dim strSQL = $"DELETE FROM `tblregs2` WHERE `RegdID` IN ({s})"
MessageBox.Show(strSQL)
End Sub

最新更新