当前使用版本(必填,否则不予处理)
mybatis-plus 3.5.3.2 springboot 3.1.3
该问题是如何引起的?(确定最新版也有问题再提!!!)
由于分页查询查询总条数时没有带上select中的条件,导致having字段查不到。
kotlin代码示例:
val wrapper = QueryWrapper<JobEntity>()
.select("*, ST_Distance_Sphere(POINT(longitude, latitude), POINT(${dto.longitude}, ${dto.latitude})) AS distance")
.having(dto.distance != null, "distance <= ${dto.distance}")
return mapper.selectPage(Page.of(dto.page, dto.size), wrapper)
报错信息
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'distance' in 'having clause'
### The error may exist in com/panda/info/mapper/JobMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT COUNT(*) AS total FROM job WHERE (status = ?) HAVING distance <= 6
### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'distance' in 'having clause'
; bad SQL grammar []
Comment From: miemieYaho
入参page里关闭cont优化