如果你的SQL语句在数据库中查询的时候是没问题的,但是把他写到代码中的时候如果报org.postgresql.util.PSQLException: 栏位索引超过许可范围:1,栏位数:0。这个错误,你就可以考虑是不是传值的地方加了引号(包括单引号和双引号),就在下图中红色箭头的地方,也就是传值的地方
就删掉这个引号,再次执行,就没有再次出现这个问题了;
另外的几个传值问题:
-
#方式能够很大程度上防止sql注入,而$无法防止sql的注入;
-
$一般用于传入数据库对象,例如传入表名;
-
mybatis排序时使用order by动态参数时是使用$而不是#;
总之能用# 的时候 就不用 $ 这就好了;