Mybatis xml中排序(order by)条件用#{}查询失败

问题描述:

处理简单分页时,发现从外部传入的排序条件无法生效,但程序无报错,正常返回列表,只是排序条件不对;

原因:

#{}表示一个占位符,当#{}传入的数据是一个字符串时,会自动将传入的数据加一个双引号。

解决方法:

使用${}将传入的数据直接显示生成在sql中;

1、当查询语句使用#{},例如传入"update_date desc"排序条件,生成语句如下

复制代码
select id, title, name, status, create_by,create_date,update_by,update_date from table 
WHERE status = 1 order by "update_date desc"

2、使用${}生成语句是:

复制代码
select id, title, name, status, create_by,create_date,update_by,update_date from table 
WHERE status = 1 order by update_date desc

3、推荐文章

Mybatis中${}和#{}的区别:https://blog.csdn.net/BBQ__ZXB/article/details/127089187

相关推荐
salipopl6 小时前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
zihao_tom6 小时前
Spring-boot3.4最新版整合swagger和Mybatis-plus
mybatis
GIS阵地8 小时前
Warning 1: PROJ: proj_create_from_database
数据库·c++·mybatis·qgis·开源gis·pyqgis
zjjsctcdl9 小时前
Spring Boot与MyBatis
spring boot·后端·mybatis
root666/10 小时前
【Java-后端-Mybatis】JOIN 作用
java·mybatis
lcrml11 小时前
Springboot3 Mybatis-plus 3.5.9
数据库·oracle·mybatis
稻草猫.12 小时前
MyBatis入门:快速掌握数据库操作技巧
数据库·spring·java-ee·mybatis
小江的记录本12 小时前
【PageHelper】 【Spring Boot + MyBatis + PageHelper】 完整项目示例+PageHelper核心原理深度解析
java·前端·spring boot·后端·sql·spring·mybatis
杰克尼1 天前
苍穹外卖--day08
java·数据库·spring boot·mybatis·notepad++
Predestination王瀞潞1 天前
3.3-mapper映射文件+数据库实体关系设计:数据库实体关系设计、SQL 连接查询及MyBatis 多表映射
数据库·sql·mybatis