我想问的第一个问题是,使用多个where子句进行一个删除查询会更快,还是一个接一个地执行会更快?第二,如果是这样,那么如何使用多个where子句进行删除查询?提前致谢!
您不能有多个WHERE
子句,但是可以使条件更加复杂。
如果你的表中有FirstName
和LastName
,和要删除John Doe
,Toby Steed
和Linda Powers
,然后再结合AND
和OR
条件如下:
DELETE FROM MyTable
WHERE ( FirstName = 'John' AND LastName = 'Doe' )
OR ( FirstName = 'Toby' AND LastName = 'Steed' )
OR ( FirstName = 'Linda' AND LastName = 'Powers' )
现在,如果您是用Java编写的,则不要(EVER!)使用字符串连接来构建这样的SQL语句。使用PreparedStatement
:
String sql = "DELETE FROM MyTable" +
" WHERE ( FirstName = ? AND LastName = ? )" +
" OR ( FirstName = ? AND LastName = ? )" +
" OR ( FirstName = ? AND LastName = ? )";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, "John");
stmt.setString(2, "Doe");
stmt.setString(3, "Toby");
stmt.setString(4, "Steed");
stmt.setString(5, "Linda");
stmt.setString(6, "Powers");
stmt.executeUpdate();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句