-
結論
使用PreparedStatement執行SQL時,如果order by之後的排序字段使用佔位符,通過setString設置值的話,會導致排序失效 -
原因
PreparedStatement用佔位符防止SQL注入的原理是,在爲佔位符設置值時,會將值轉爲字符串,然後轉義,再將值放入反引號中,放置在佔位符的位置上;源碼見因此,當排序字段使用佔位符後,原來的排序語句 order by gmt_created(假設排序字段是gmt_created),在實際執行時變成了 order by
`gmt_created`
,根據字段排序變成了根據字符串常量`gmt_created`
排序,導致排序失效
MySQL order by之後用佔位符導致排序失效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
高效調度新篇章:詳解DolphinScheduler 3.2.0生產級集羣搭建
原創
2024-05-15 21:22:54
Metabase 安裝和使用教程
原創
2024-05-17 21:16:51
MySQL 核心模塊揭祕 | 16 期 | InnoDB 表鎖
原創
2024-05-17 12:02:59
聊聊MySQL是如何處理排序的
原創
2024-05-16 10:58:48
MySQL 給用戶添加 ALTER VIEW 的權限
原創
2024-05-15 23:00:44
多點 Dmall x TiDB:出海多雲多活架構下的 TiDB 運維實戰
原創
2024-05-15 10:48:37
詳解 MySQL 的 binlog 時間戳與 exec_time 的關係
原創
2024-05-15 00:02:08
「Java開發指南」如何用MyEclipse搭建GWT 2.1和Spring?(二)
原創
2024-05-17 12:21:26
Java ThreadPoolShutdown
原創
2024-05-17 02:06:32
通過MVEL表達式和Apache Chain職責鏈模式解耦MQ消息處理節點的實踐應用
原創
2024-05-16 23:56:24
Spring @EnableXxx註解的使用理解
原創
2024-05-16 23:48:06
java將list結果分成3份執行 原創
文文1
2024-05-16 02:09:55
OSS_PIPE:Rust編寫的大規模文件遷移工具
京東雲開發者
2024-05-15 23:59:27
Spring cloud gateway入門
原創
2024-05-15 11:50:15