WHERE id IN (1, 2, 3); 如何写成动态的sql语句
时间: 2023-09-07 19:11:36 浏览: 35
以下是一个简单的示例,假设使用的是 Java 语言和 MyBatis 框架:
```
public void deleteByIds(List<Integer> ids) {
SqlSession session = sqlSessionFactory.openSession();
try {
// 构建动态 SQL 语句
StringBuilder sql = new StringBuilder();
sql.append("DELETE FROM table_name WHERE id IN (");
for (int i = 0; i < ids.size(); i++) {
sql.append("#{ids[");
sql.append(i);
sql.append("]},");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
// 执行删除操作
Map<String, Object> params = new HashMap<>();
params.put("ids", ids);
session.delete(sql.toString(), params);
session.commit();
} finally {
session.close();
}
}
```
其中,ids 参数为要删除的记录的主键值列表。首先,使用 StringBuilder 构建动态 SQL 语句,将 ids 参数转换成 IN 子句中的参数列表。然后,使用 MyBatis 的动态 SQL 功能,将 SQL 语句和参数传递给 session.delete() 方法执行删除操作。最后,提交事务并关闭 session。