Open
Description
确认
- 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
- 我已经在 issue 中搜索过, 确认问题没有被提出过
- 我已经修改标题, 将标题中的 描述 替换为你的想法(不得删除 描述 前面的部分)
功能改进
多列in的sql
sql demo
-- 使用多列 IN 进行查询
SELECT *
FROM student
WHERE (grade, age) IN (('A', 1), ('B', 2));
支持的数据库情况
数据库系统 | 多列 IN 支持 |
说明 |
---|---|---|
PostgreSQL | ✅ 支持 | 完全支持 (col1, col2) IN ((v1, v2), (v3, v4)) 语法。 |
MySQL | ✅ 支持 | 从 5.7 版本起支持多列 IN 语法。 |
Oracle | ✅ 支持 | 支持多列 IN ,但在某些场景下需使用 JOIN 或 EXISTS 代替。 |
SQLite | ✅ 支持 | 支持多列 IN 语法。 |
SQL Server | ❌ 不支持 | 不支持多列 IN ,需使用 EXISTS 或 JOIN 替代。 |
期望的使用方法 感觉是这样
QueryChainWrapper
public List<Student> list(List<List<Object>> list) {
return this.query()
.in(List.of("grade","age"),list)
.list();
}
public List<Student> list(List<List<Object>> list) {
return this.query()
.in(list,"grade","age")
.list();
}
LambdaQueryChainWrapper
public List<Student> list(List<List<Object>> list) {
return this.lambdaUpdate()
.in(List.of(Student::getGrade, Student::getAge), list)
.list();
}
public List<Student> list(List<List<Object>> list) {
return this.lambdaUpdate()
.in(List.of(Student::getGrade, Student::getAge), list)
.list();
}
public List<Student> list(List<Query> list) {
return this.lambdaQuery()
.in(List.of(Student::getGrade, Student::getAge),list,List.of(Query::getGrade, Query::getAge))
.list();
}
参考资料
No response
Metadata
Metadata
Assignees
Labels
No labels