首先你得知道是什么意思,如果没有参数参数中的这一段其实是没有的,也就是你的参数有名称,没有年龄,你一个sql你把年龄的放在了前面,但是没有穿年龄的参数,所以where包括后面的都没有,只拼接上了and后面的名称,所以报and附近有语法错误,第二个数据集你的名称在前面,所以拼接的where条件是没有任何问题的
正确的写法应该是这样写
select * from aaa
WHERE 1=1 and age = ?{年龄}
AND Name IN (?{名称}) ...
首先你得知道<>是什么意思,如果没有参数<>参数中的这一段其实是没有的,也就是你的参数有名称,没有年龄,你一个sql你把年龄的放在了前面,但是没有穿年龄的参数,所以where包括后面的都没有,只拼接上了and后面的名称,所以报and附近有语法错误,第二个数据集你的名称在前面,所以拼接的where条件是没有任何问题的
正确的写法应该是这样写
select * from aaa
WHERE 1=1 <年龄> and age = ?{年龄} </年龄>
<名称> AND Name IN (?{名称}) </名称>