描述的模糊查询一直查不出来,原来就是?问号的前面和后面少了个空格
动态拼接确实很有深意
不写1=1要多写很多逻辑来判断是否要拼接and
不用空格的话,拼接出来的sql语句会报错,like是模糊查询的关键字,至于写的问号是因为用了sql预编译,防止sql注入。where 1=1 是动态拼接sql语句用的,避免sql语句出错,进行条件查询的时候必须要使用where关键字,假如没有1=1,用户没输入任何值的时候,此时的sql语句是 sql是select * from command where;这样的话,sql语句就有问题;只有加上1=1才是一条完整的sql语句,因为1=1是永远成立的,所以select * from command where 1=1 就相当于 select * from command