字符串数组 - > SQL语句中的longId数组

时间:2009-06-24 04:04:12

标签: c# sql

我从HttpContext.Current.Request [“key”]得到一个字符串,如果它不为空,我会拆分(',')。

现在我想写一个sql语句删除任何匹配键的msgId(long / Int64),我该怎么写呢?我unserstand的唯一方法是将string []转换为long []然后循环一个SQL语句。还有更好的方法吗?

PS:使用sqlite ATM,但将切换到另一个SQL引擎。 (我还没有选择服务器,所以我不知道哪个)

2 个答案:

答案 0 :(得分:1)

DELETE FROM table WHERE id IN (1,2,3,keys)

会这样做吗?

答案 1 :(得分:0)

我建议您使用上面的 Ben的解决方案,但稍作修改。我观察到当你在sql中使用很多项目(它是用sql 2000,不知道它是否仍然是sql 2005的问题)在语句中查询往往会变慢。尝试在'in'语句中的项目数超过100的多个删除语句。

Ex: DELETE FROM table WHERE id IN (1,2,3 ... n)
    DELETE FROM table WHERE id IN (1,2,3 ... n)

如果您不期待很多项目,则无需执行此操作。