我一直试图在postgres中进行LIKE
比较,但是反复收到一条错误消息,告诉我列"%@firstname%"
不存在。
我需要澄清的是,此查询是在函数中执行的,“ @ firstname”是传递给函数的参数。
查询的相关部分如下:
WHERE u."firstname" LIKE "%@firstname%"
我不希望进行精确的比较,这就是为什么我试图将%%添加到查询中的原因。如果没有确切的查询,它们就可以正常工作。每当我添加%时,它就假定它们是变量名的一部分,随后找不到它。
我也尝试了以下方法:
'%"@firstname"%'
会导致返回一个空数组,即使它应该已经匹配
"%'@firstname'%"
产生error: column "%'@filter'%" does not exist
%"@firstname"%
产生error: column "%'@filter'%" does not exist
答案 0 :(得分:3)
如果"@firstname"
是一个参数,则需要类似:
WHERE u.firstname LIKE concat('%', "@firstname", '%');