【发布时间】:2012-06-04 22:33:28
【问题描述】:
是否可以在 mysql 中使用 jdbc 或本机 sql 执行批量删除?
我有一组未知数量的字符串要与一列进行比较并删除行。当参数数量未知时,是否可以在 jdbc PreparedStatement 中使用参数?
除了构造一个包含类似子句的字符串并执行它之外,还有其他方法可以做到这一点吗?
【问题讨论】:
是否可以在 mysql 中使用 jdbc 或本机 sql 执行批量删除?
我有一组未知数量的字符串要与一列进行比较并删除行。当参数数量未知时,是否可以在 jdbc PreparedStatement 中使用参数?
除了构造一个包含类似子句的字符串并执行它之外,还有其他方法可以做到这一点吗?
【问题讨论】:
是的,有可能,但可能不值得。
Prepared statements 真正设计用于处理除了变量之外查询完全相同的情况。
如果您无法提前构建查询,它们将无法帮助您。
所以
delete from table where field1 = 'string1' or field2='string2'..... or fieldX='stringX'
如果查询是从头开始构建的,或者如果它是作为准备好的语句创建的,那么在事先不知道 X 的情况下,它的运行速度也会一样快。
如果我误解了您的问题,请告诉我。
【讨论】: