0

在 Spring+Hibernate 应用程序中,我尝试使用命名参数传递查询应该对保存在数据库中的 xml 文档中的值作为文本求和。

    SELECT  document_type, 
     SUM(CAST(substring(document_content ,'<ab.*>(.*[0-9])</ab>') as float)) as value, COUNT(*)
     FROM  statistic_data_test 
     WHERE column LIKE :param1::text
     GROUP BY document_type 
     ORDER BY value DESC 

param1 是通过 URL 传递给程序的命名参数。整个查询和参数名称由用户动态创建。

上面显示的代码工作正常,但我不仅需要找到完全匹配的能力,而且我不能在查询中连接字符串。现在,在代码的一部分中,我正在检查类型是否为文本,如果是,我添加 % 标记作为后缀和前缀。

我不会将 % 标记从参数移动到查询字符串,但是像

WHERE column LIKE '%'+:param1::text+'%'

转向错误

怎么做到呢?如何在查询中连接字符串?

4

1 回答 1

1

改变策略,保持目标。

使用该position功能。

position(:param1::text in column) <> o
于 2012-07-18T20:36:29.243 回答