qq_38197169
lzzscl,这个SB
采纳率81.8%
2019-04-13 21:23

mybatis模糊查询时遇见的问题,网上都说这么查,但是我运行起来是错的啊,求救

5
已采纳

这是SQL代码,用的时mybatis的注解

 @Select("select * from t_chushou where (title like CONCAT('%',#{0},'%')")

错误信息是:

SQL: select * from t_chushou     WHERE (title like CONCAT("%",?,"%")
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

我用数据库软件直接运行代码段,发现第一个‘%’后面就好像没用了。。。大神帮我看看呗

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • luguo90327 luguo90327 2年前

    where (title 这里多了个“(”

    点赞 1 评论 复制链接分享
  • weixin_44767912 huangMVC 2年前

    你也不觉得自己缺少一个括号吗

    点赞 1 评论 复制链接分享
  • qq_39249094 笑看烟雨红尘 2年前

    https://baike.baidu.com/item/concat%28%29/13473511?fr=aladdin
    三个字符连接需要嵌套使用,而且你传入的字符完全可以写成 '%需要传入的字符%'以这种形式传入SQL

    点赞 1 评论 复制链接分享
  • qq_33314485 qq_33314485 2年前

    #{0}是你传的参数,在mysql中不能用,select * from t_chushou where (title like CONCAT('%',‘需要查询的内容’,'%')

    点赞 1 评论 复制链接分享
  • qq_33855563 o(╯□╰)o ! 2年前
    这样试试: select * from t_chushou where (title like CONCAT('%',${0},'%')
    # 换成 $
    
    点赞 1 评论 复制链接分享