最近在写mybatis中的sql的时候碰到了一些问题,就是关于时间格式的比较,相信大家在mybatis中写sql的时候也遇到过这些问题,现在来总结一下这些问题。
我们通常在写一些sql的时候可能会碰到一些逻辑是比较大小的,比如查找价格高于200元的商品,这个时候我们要怎么写呢?
很简单,也就是:select * from goods where price>200 .
这样的句子在我们写的一般的sql里面就可以使用了
但是!!!
我们要知道,mybatis的mapper文件就是xml类型的,并且xml文件自带的标签正好里面是用‘<’和‘>’来进行区分的,所以这个xml文件在进行解析的时候,如果我们的sql语句中带着‘<’或‘>’的话会有概率解析错误,这个就和我们在html中如果想要在页面上输出一个反斜杠,直接输出是不能输出是一个道理。
所以,这里在xml文件中和在HTML文件中一样,用到了字符串的转义,来让我们的解析器解析到xml中的大于小于号,以下为常用的转义类型:
符号 | 转义符 | 转义码 | 中文 |
< | < | < | 小于号 |
> | > | > | 大于号 |
≤ | ≤ | ≤ | 小于等于号 |
≥ | ≥ | ≥ | 大于等于号 |
" | " | " | 引号 |
“ | “ | “ | 左双引号 |
” | ” | ” | 右双引号 |
‘ | ‘ | ‘ | 做单引号 |
’ | ’ | ’ | 右单引号 |
然后说到sql就不得不提到里面的函数了,只是拿我们的来举例子,现在我才知道可以对于要查找的参数进行函数处理:
substr(early_sell_start_time,1,10) = #{nowDate}
这句话的意思就是把字段 early_sell_start_time 的数据从第一个开始截取10为与参数比较,然后查询结果。