MySQL 中SQL语句特殊字符如何处理(大于号, 小于号等)

前言:
我们在使用mybatis时SQL是写在xml映射文件中,如果写的sql中有一些特殊字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,因为转义之后可能会出现一些问题比如SQL语句无法执行(如下图所示).所有我们可以通过<!CDATA[]>来解决

下方的SQL语句加粗部分的**<=**就会被解析掉而无法正常实现SQL语句的查询功能

SELECT
	d.plugin_idASpluginId,
	p.nameASname,
	d.integralASintegral
FROM
(
	SELECT
		SUM(integral)ASintegral,
		plugin_id
	FROM
		tik_integral_detail
	WHERE
		user_id=#{userId}
		ANDDATE_SUB(CURDATE(),INTERVAL7DAY) **<=** DATE(create_time)
	GROUP BY
	plugin_id
)AS d
JOINtik_pluginpONd.plugin_id=p.id

错误提示:
在这里插入图片描述

那么如何保证SQL语句可以正常执行呢?如下形式就可以了

SELECT
	d.plugin_idASpluginId,
	p.nameASname,
	d.integralASintegral
FROM
(
	SELECT
		SUM(integral)ASintegral,
		plugin_id
	FROM
		tik_integral_detail
	WHERE
		user_id=#{userId}
		ANDDATE_SUB(CURDATE(),INTERVAL7DAY)**<![CDATA[<=]]>**DATE(create_time)
	GROUP BY
	plugin_id
)AS d
JOINtik_pluginpONd.plugin_id=p.id

什么是<![CDATA[]]>

<!CDATA[]>是xml语法.在CDATA内部的所有内容会被解析器忽略.如果包含了很多的"<"字符<=和"&"字符--就像程序代码一样,最好把他们都放在CDATA部件中.

总结:
这些SQL语句还有很多需要学习的地方需要继续努力.

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值