mybatis中sql字符串拼接 如何截取中間字符串?
如何截取中間字符串?最怕這種不描述清楚場(chǎng)景的問題,只有嘗試答一下。 1、假如是數(shù)據(jù)庫(kù)應(yīng)用,以O(shè)racle為例,用substr來截取子字符串。 語法為:substr(字段名,截取字符串的開始位置,截取子
如何截取中間字符串?
最怕這種不描述清楚場(chǎng)景的問題,只有嘗試答一下。
1、假如是數(shù)據(jù)庫(kù)應(yīng)用,以O(shè)racle為例,用substr來截取子字符串。
語法為:substr(字段名,截取字符串的開始位置,截取子串長(zhǎng)度)
實(shí)例如下:
數(shù)據(jù)庫(kù)里有張人員表,人員的出生日期字段是按“yyyy-mm-dd”格式保存生日信息的,現(xiàn)要提取每個(gè)人的出生月份,就可以寫成
select substr(出生日期字段,6,2) from 人員表
2、假如是編程應(yīng)用,以C#為例,用Substring來截取子字符串。
語法為Substring(被截取變量名,截取字符串的開始位置,截取子串長(zhǎng)度)
實(shí)例如下:
string str = "hellow word!"
string ss = str.Substring(4,2)
截取結(jié)果為"ow"。
mybatis取傳進(jìn)來的參數(shù)mybatis#{}${}區(qū)別是啥?
#{} : 表示一個(gè)占位符
${} : 表示字符拼接 , 會(huì)引起sql注入風(fēng)險(xiǎn), 不推薦大家使用
演示:name 的值為 zhangsan
select * from user where name = #{name}
select * from user where name = ${name}
但是 #{} 和 ${} 在預(yù)編譯中的處理是不一樣的。#{} 在預(yù)處理時(shí),會(huì)把參數(shù)部分用一個(gè)占位符 ? 代替,變成如下的 sql 語句:
select * from user where name = ?
而 ${} 則只是簡(jiǎn)單的字符串替換,在動(dòng)態(tài)解析階段,該 sql 語句會(huì)被解析成
select * from user where name = "zhangsan"