这是mybatis低版本的问题 低版本就算condition的结果为true,也会执行后面的逻辑去生成sql语句,但不会执行SQL而是等到page()、list()、one()…等时候才会去执行SQL,所以是生成sql语句时报的错总结就是condition只是判断SQL是否执行,而不是后面的代码是否执行低版本最好还是去用if结构去判空从而决定是否增加某个条件