mysql插入的数据中有分号(;) 如何处理呢

mysql插入的数据中带分号(;)会导致语法错误,怎么转义识别成字符呢。。

单引号才需要转义吧,分号不是和普通字符一样吗

直接将分号用引号包起来就可以了,像这样

INSERT INTO `table1` (`ID`, `CREATEDATETIME`, `DESCRIPTION`, `NAME`) VALUES
    ('2', '2015-08-25 10:34:53', '菜单类型会显示在系统首页左侧菜单中', ';')

带分号的数据是字符串只要有单引号';'是不影响的啊

;分号也是字符串的一种,在mysql中字符串需要用‘’单引号括起来的,纯数字除外,不然就会报错。
在mybatis这样的持久化框架中,用#{},框架就会自动帮你加上单引号;用${}就不会帮你加上单引号,字符串类型就会报错,除非自己手动给字符串加上‘‘单引号

  1. 如果是 mysql 直接插入数据,且数据中含有分号,则直接将分号当做 普通字符,用引号括起来即可 ‘;’
  2. 如果是程序调用,譬如python调用sql语句插入,则不需要 分号 结尾的,直接写语句即可,记得要commit。

先说明,在插入语句中 ,插入的字符串都是要用单引号包起来的,单引号里有分号没有任何影响,但题主既然这么问了,肯定是在其他地方遇到了问题,误以为是这个原因,所以:
建议题主把sql贴出来看看

拼接的sql中 ;用双单引号包裹 '';''

楼主新增的时候应该是用了${projectId},这样不会将数据转化为字符串,还会导致sql注入,正确写法应该是#{projectId}


<if test="projectId != null "> and zj.project_id = #{projectId}</if>