0

我想根据一些 ID 从数据库中删除我的记录。

这是写在我的存储过程中的语句,用于根据 DeletedID 删除记录。

DELETE FROM tms_activity where activity_id IN (DeletedID);

我的 DeletedID 是一个以逗号分隔的记录的字符串,例如 ("1,2,3")

现在,当我在我的 Statement 中将 DeletedID 作为参数传递时,它会将输入作为“1,2,3”并删除它正在获取的第一个 DeletedID 的记录(在这种情况下为 1)。但我想删除所有基于给定参数的记录。

DeletedId 必须像 (1,2,3) 而不是 ("1,2,3") 那样传递,而不是只能根据提供的 ID 删除所有记录......现在我该怎么做?

我咨询了这个问题:MySQL wrong output with IN clause and parameter,但不明白我怎样才能达到我的结果。

4

1 回答 1

0

你试过这个吗

      DELETE FROM tms_activity where activity_id in
      ( SELECT ACTIVITY_ID FROM SOMETABLE WHERE FIELD = CRITERIA )

或者更多的发现,如果我遇到这个问题,我会选择这些解决方案之一。

我调查并为您找到了一些非常好的链接。

[http://johnhforrest.com/2010/10/parameterized-sql-queries-in-c/][1]

如果您必须发送大量参数并希望针对一个 sql 运行,则参数化 SQL 查询有一个好处。它将 sql 放在一个块中,并将所有参数放在另一个块中,因此保持网络流量较低。

您可以在此主题中搜索更多内容

谢谢

资历架构

于 2013-11-27T05:10:16.823 回答