在 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+'%'
转向错误
怎么做到呢?如何在查询中连接字符串?