关于sql语句的问题

来源:2-6 列表查询

慕莱坞6592045

2018-09-05 12:27

if (command!=null&&!"".equals(command.trim())) {

sql.append(" and command=?");

paramList.add(command);

}

if (description!=null&&!"".equals(description.trim())) {

sql.append(" and description=like '%' ? '%'");

paramList.add(description);

}


这里面and前面为什么要空格,问号和百分号是干什么的,能详细点么


写回答 关注

1回答

  • 漫步fy
    2018-09-06 16:10:56

    1、这个是sql拼接, 如果if语句中条件满足了,就会和之前的sql拼接,举个例子:select * from user where id=1,如果条件满足不加空格的话就会变成“select * from user where id=1and command=?”,很明显and和1连在一起了,是错误的

    2、?是指带你要输入的数据,这个是数据库PreparedStatement预处理的操作,%?%举个例子:比如模糊查询想查userName, 那这个?代表你前台传过来的userName, 数据库里有123,1124,3323,你输入2,这三个值都能查出来,代表前面有任意字符,后面任意字符。

    旧情歌_

    and前面也可以没有空格,在上面拼接的sql语句后面加上空格也可以。

    2019-02-14 17:04:44

    共 2 条回复 >

通过自动回复机器人学Mybatis---基础版

微信公众号自动回复功能学习Mybatis,基础教程加案例实战方式学习

107412 学习 · 786 问题

查看课程

相似问题