服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - Postgresql在mybatis中报错:操作符不存在:character varying == unknown的问题

Postgresql在mybatis中报错:操作符不存在:character varying == unknown的问题

2021-03-29 21:17漂浪 PostgreSQL

这篇文章主要介绍了Postgresql在mybatis中报错: 操作符不存在 character varying == unknown的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

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

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

?
1
2
3
4
5
6
7
8
<if test="dSign!=null and dSign =='0'.toString()">
    AND (b.d_sign is null or b.d_sign='')
</if>
<if test="dSign!=null and dSign =='1'.toString()">
    AND (b.d_sign is not null AND b.d_sign!='')
</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
3
4
5
6
7
8
9
10
//表中总共的记录数
select count(1) from table_name 32
 
select count(1) from table_name where d_sign is null 9 //32=9+23
select count(1) from table_name where d_sign is not null 23 //23=5+18
select count(1) from table_name where d_sign= '' 5
select count(1) from table_name where d_sign!='' 18
 
select count(1) from table_name where d_sign is null or d_sign='' 14 //32=14+18
select count(1) from table_name where d_sign is not null AND d_sign!='' 18

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

原文链接:https://blog.csdn.net/qq_23671977/article/details/112757728

延伸 · 阅读

精彩推荐
  • PostgreSQLRDS PostgreSQL一键大版本升级技术解密

    RDS PostgreSQL一键大版本升级技术解密

    一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在整个数据库行业的位置之前,我们先看一下阿里云数据库在全球的数据库行业里的...

    未知1192023-05-07
  • PostgreSQL分布式 PostgreSQL之Citus 架构

    分布式 PostgreSQL之Citus 架构

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存比单...

    未知802023-05-07
  • PostgreSQL深入理解PostgreSQL的MVCC并发处理方式

    深入理解PostgreSQL的MVCC并发处理方式

    这篇文章主要介绍了深入理解PostgreSQL的MVCC并发处理方式,文中同时介绍了MVCC的缺点,需要的朋友可以参考下 ...

    PostgreSQL教程网3622020-04-25
  • PostgreSQLPostgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程...

    我勒个去6812020-04-30
  • PostgreSQLPostgreSQL标准建表语句分享

    PostgreSQL标准建表语句分享

    这篇文章主要介绍了PostgreSQL标准建表语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码上得天下7962021-02-27
  • PostgreSQLpostgresql 数据库中的数据转换

    postgresql 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgresql数据库中,我们可以用"::"来进行字段数据的类型转换。...

    postgresql教程网12482021-10-08
  • PostgreSQLpostgresql 中的to_char()常用操作

    postgresql 中的to_char()常用操作

    这篇文章主要介绍了postgresql 中的to_char()常用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    J符离13432021-04-12
  • PostgreSQLPostgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价...

    轨迹4622020-05-03