mysql插入的数据中带分号(;)会导致语法错误,怎么转义识别成字符呢。。
单引号才需要转义吧,分号不是和普通字符一样吗
直接将分号用引号包起来就可以了,像这样
INSERT INTO `table1` (`ID`, `CREATEDATETIME`, `DESCRIPTION`, `NAME`) VALUES
('2', '2015-08-25 10:34:53', '菜单类型会显示在系统首页左侧菜单中', ';')
带分号的数据是字符串只要有单引号';'是不影响的啊
;分号也是字符串的一种,在mysql中字符串需要用‘’单引号括起来的,纯数字除外,不然就会报错。
在mybatis这样的持久化框架中,用#{},框架就会自动帮你加上单引号;用${}就不会帮你加上单引号,字符串类型就会报错,除非自己手动给字符串加上‘‘单引号
先说明,在插入语句中 ,插入的字符串都是要用单引号包起来的,单引号里有分号没有任何影响,但题主既然这么问了,肯定是在其他地方遇到了问题,误以为是这个原因,所以:
建议题主把sql贴出来看看
拼接的sql中 ;用双单引号包裹 '';''
楼主新增的时候应该是用了${projectId},这样不会将数据转化为字符串,还会导致sql注入,正确写法应该是#{projectId}
<if test="projectId != null "> and zj.project_id = #{projectId}</if>