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

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

下方的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)****DATE(create_time)
	GROUP BY
	plugin_id
)AS d
JOINtik_pluginpONd.plugin_id=p.id

什么是

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

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

你可能感兴趣的:(----数据库)