这两个查询之间有什么区别

时间:2017-03-28 06:42:55

标签: postgresql jpql

我使用JPQL从我的PostgresSQL数据库中获取数据,我的查询比较两个字符变化,(我使用StringBuilder创建查询)它看起来像这样

StringBuilder

queryStringBuilder.append(" AND o.num >= CONCAT(SUBSTRING(o.num,1,LENGTH(o.num) - LENGTH(:numStart)),:numStart)")

条件:解决方案1 ​​

queryStringBuilder.append(" AND SUBSTRING(o.num , LENGTH(o.num) - 1 ,  LENGTH(:numStart) )  >=  :numStart ")

并返回此错误

  

引起:异常[EclipseLink-4002](Eclipse Persistence Services - 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException   内部异常:org.postgresql.util.PSQLException:

     

ERREUR:l'argument de ANDdoitêtredetypebooléen,et non du type text     位置:460   错误代码:0

经过艰苦的工作和尝试其他查询后,我已经完成了这个解决方案

条件:解决方案2

o.num = 123456789

并且第二个查询工作正常。

第一个查询示例

numStart = 98123456789它会将123456798o.num = 123456789进行比较(在这种情况下,它会返回False)

第二个查询示例

numStart = 9889它会将98与{{1}}进行比较(在这种情况下,它也会返回False)

我的问题是:这两个查询之间有什么区别,以及如何使第一个查询起作用。

0 个答案:

没有答案