【mybatis】mapper中SQL语句关于大小比较的转义

        最近在写mybatis中的sql的时候碰到了一些问题,就是关于时间格式的比较,相信大家在mybatis中写sql的时候也遇到过这些问题,现在来总结一下这些问题。

我们通常在写一些sql的时候可能会碰到一些逻辑是比较大小的,比如查找价格高于200元的商品,这个时候我们要怎么写呢?

很简单,也就是:select * from goods where price>200   .

这样的句子在我们写的一般的sql里面就可以使用了

但是!!!

        我们要知道,mybatis的mapper文件就是xml类型的,并且xml文件自带的标签正好里面是用‘<’和‘>’来进行区分的,所以这个xml文件在进行解析的时候,如果我们的sql语句中带着‘<’或‘>’的话会有概率解析错误,这个就和我们在html中如果想要在页面上输出一个反斜杠,直接输出是不能输出是一个道理。

所以,这里在xml文件中和在HTML文件中一样,用到了字符串的转义,来让我们的解析器解析到xml中的大于小于号,以下为常用的转义类型:

符号 转义符 转义码 中文
< &lt; &#60; 小于号
> &gt; &#62; 大于号
&le; &#8804; 小于等于号
&ge; &#8805; 大于等于号
" &quot; &#34; 引号
&ldquo; &#147; 左双引号
&rdquo; &#148; 右双引号
&lsquo; &#145; 做单引号
&rsquo; &#146; 右单引号
上面的sql就可以写成: select * from goods where price &gt; 200 

然后说到sql就不得不提到里面的函数了,只是拿我们的来举例子,现在我才知道可以对于要查找的参数进行函数处理:

substr(early_sell_start_time,1,10) = #{nowDate}

这句话的意思就是把字段  early_sell_start_time  的数据从第一个开始截取10为与参数比较,然后查询结果。

猜你喜欢

转载自blog.csdn.net/tr1912/article/details/79249945
今日推荐