我试图在一个语句中删除多个记录我使用以下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