我想问的第一个问题是,使用多个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 中执行此操作,则不应(永远!)使用字符串连接来构建这样的 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();
}
关于sqlite - 如何使用多个 WHERE 子句进行 DELETE [SQLITE],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047866/