日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

.net mysql 特殊字符转义字符_MySQL 特殊字符转义问题

發布時間:2023/12/19 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模糊查詢時,很多特殊字符都是有特定意義的,比如%、_等,這些在模糊查詢中都是通配符。

如果用戶在前端的輸入是沒有限制的,那么,一旦輸入相關特殊字符,就會獲得錯誤的查詢結果,出于需求的細致要求,這個問題是需要解決的。

在網上找了很多資料,發現能夠完全把這個問題解決的答案很少或者很多都不完整,自己在找資料解決問題后,發一下我認為交優的解決辦法吧。

如果持久化框架使用的是MyBatis,那么直接使用一下代碼即可:

SELECT * FROM table_name

WHERE clo LIKE CONCAT ('%/',#{testClo},'%') ESCAPE '/'

首先,在數據庫中的轉義字符通常是反斜杠“\”,并且只有緊挨著的字符會被轉義,比如說:"\%",這里的%被轉義成普通字符而不是通配符,但是如果"\電%",這個%還是通配符。

其次,escape 用于定義轉義字符,這里將斜杠"/"定義成轉義符。

最后,因為MyBatis是直接把testClo中的內容傳遞過來的,所以前面的“/”會把testClo中所有的特殊字符都轉義成普通字符而不管中間是否有其他字符串隔開。

這樣就可以實現無論前端輸了什么東西進來,都不會再有特殊字符導致錯誤的問題了。

值得注意的是:這是框架級的代碼而不是數據庫級的代碼,也就是說,如果你直接在數據庫中這樣寫,是不行的。或者說,這是MyBatis支持的一種方法。

總結

以上是生活随笔為你收集整理的.net mysql 特殊字符转义字符_MySQL 特殊字符转义问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。