经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » PostgreSQL » 查看文章
Postgresql在mybatis中报错:操作符不存在:character varying == unknown的问题
来源:jb51  时间:2021/1/18 15:57:26  对本文有异议

错误: 操作符不存在: character varying == unknown , Hint: 没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.

在Mybatis条件查询时,动态SQL的一个错误,sql写的也不多,没仔细看所以一直找不到错误,网上也找不到类似的错误,结果是低级错误。。。

  1. <div>
  2. <form:select path="finished" class="col-xs-12 form-control m-b">
  3. <form:option value="" label="请选择"/>
  4. <from:options items="${fns:getDictList('fin')}" itemLabel="label"
  5. itemValue="value" htmlEscape="false"/>
  6. </form:select>
  7. </div>

下面的动态sql查询是根据前台字典传过来的值 0或1或'' ,来判断d_sign的值进行数据过滤查询,默认传过来''(空字符串)则均不进下面的判断条件里,是0 或 1 才进去。

  1. <if test="dSign!=null and dSign =='0'.toString()">
  2. AND (b.d_sign is null or b.d_sign='')
  3. </if>
  4. <if test="dSign!=null and dSign =='1'.toString()">
  5. AND (b.d_sign is not null AND b.d_sign!='')
  6. </if>

我把上面①里面的 b.d_sign='' 写成了b.d_sign=='',从而报了上面的错误。

另外把自己用到的一些postgresql中的sql语句做个整理:

我的postgresql数据库版本

  1. select version(); //查询版本语句

PostgreSQL 9.5.22, compiled by Visual C++ build 1800, 64-bit

修改表名

  1. alter table table_name rename to table_name2;

修改字段的默认值

  1. ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;

设置某个字段的值为null

正确示范:

  1. update table_name set fin=null; //正常完成修改操作

错误示范:

  1. update table_name set fin is null; // 报语法错误!!!

修改表中值为null的数据

正确示范:

  1. update table_name set fin='0' where fin is null ; //正常完成修改操作

错误示范:

  1. update table_name set fin='0' where fin = null ; //不报语法错误,但修改条数是0,不起修改作用

修改字段的类型

  1. alter table 表名 alter COLUMN 列名 type varchar(255) ;

添加字段

  1. ALTER TABLE 表名 ADD 字段名 varchar(36);

其他测试:

  1. //表中总共的记录数
  2. select count(1) from table_name 32
  3. select count(1) from table_name where d_sign is null 9 //32=9+23
  4. select count(1) from table_name where d_sign is not null 23 //23=5+18
  5. select count(1) from table_name where d_sign= '' 5
  6. select count(1) from table_name where d_sign!='' 18
  7. select count(1) from table_name where d_sign is null or d_sign='' 14 //32=14+18
  8. select count(1) from table_name where d_sign is not null AND d_sign!='' 18

到此这篇关于Postgresql在mybatis中报错: 操作符不存在: character varying == unknown的文章就介绍到这了,更多相关Postgresql报错操作符不存在内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号