由于在Mybatis框架的xml中,我们常用的大于(>)小于(<),大于等于(>=)小于等于(<=)解析的时候会经常出问题,导致编译报错,所以就需要对其进行转译才能通过。
原符号 | Mybatis中替换的符号 | 备注 | 例子 |
> | > | A > B | |
>= | >= 或者 <![CDATA[>= ]]> | A >= B 或者 A <![CDATA[>= ]]> B | |
< | < | A < B | |
<= | <= 或者 <![CDATA[<= ]]> | A <= B 或者 A <![CDATA[<= ]]> B | |
!= | <![CDATA[ <> ]]> 或者 <![CDATA[!= ]]> | A <![CDATA[ <> ]]> B 或者 A <![CDATA[!= ]]> B | |
"" | " | 双引号 | |
'' | ' | 单引号 | |
& | & | A & B |
<select id="getWaterLevel" resultType="MsgCategoryVo">
SELECT
SUM(CASE WHEN water_level < 5 THEN 1 ELSE 0 END) AS normal,
SUM(CASE WHEN water_level <![CDATA[ >= ]]> 5 and water_level <10 THEN 1 ELSE 0 END) AS blueWarn,
SUM(CASE WHEN water_level <![CDATA[ >= ]]> 10 and water_level <20 THEN 1 ELSE 0 END) AS yellowWarn,
SUM(CASE WHEN water_level <![CDATA[ >= ]]> 20 and water_level <30 THEN 1 ELSE 0 END) AS orangeWarn,
SUM(CASE WHEN water_level <![CDATA[ >= ]]> 30 THEN 1 ELSE 0 END) AS redWarn
FROM
tb_device_msg where DATE_SUB(CURDATE(),INTERVAL 7 DAY) <![CDATA[ <= ]]> date(create_time)
</select>