【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为与参数比较,然后查询结果。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值