Postgresql Postgres类%%语法错误
我一直试图在postgres中进行Postgresql Postgres类%%语法错误,postgresql,syntax,syntax-error,filtering,Postgresql,Syntax,Syntax Error,Filtering,我一直试图在postgres中进行之类的比较,但反复收到一个错误,告诉我“%@firstname%”列不存在 我应该澄清一下,这个查询是在一个函数中执行的,“@firstname”是传递给函数的参数 查询的相关部分如下: 其中u“firstname”类似于“%@firstname%” 我不需要精确的比较,这就是为什么我尝试将%%添加到查询中的原因。如果没有精确的查询,它就可以正常工作。每当我添加%时,它都会假定它们是变量名的一部分,并且随后找不到它 我还尝试了以下方法: “%”@firstnam
之类的比较,但反复收到一个错误,告诉我“%@firstname%”列不存在
我应该澄清一下,这个查询是在一个函数中执行的,“@firstname”是传递给函数的参数
查询的相关部分如下:
其中u“firstname”类似于“%@firstname%”
我不需要精确的比较,这就是为什么我尝试将%%添加到查询中的原因。如果没有精确的查询,它就可以正常工作。每当我添加%时,它都会假定它们是变量名的一部分,并且随后找不到它
我还尝试了以下方法:
“%”@firstname“%”
这会导致返回空数组,即使它本应匹配
“%@firstname”%
这会导致错误:列“%@filter”%”不存在
%“@firstname”%
这会导致错误:列“%”@filter“%”不存在
如果“@firstname”
是一个参数,则需要类似以下内容:
WHERE u.firstname LIKE concat('%', "@firstname", '%');
如果“@firstname”
是一个参数,则需要类似以下内容:
WHERE u.firstname LIKE concat('%', "@firstname", '%');
使用单引号“非双引号”表示string@GrzegorzGrabek我现在澄清了这个问题,但是“@firstname”是一个函数参数,所以它需要双引号。我试图通过执行“%”@firstname来规避这个问题“%”
但这会将整个变量变成一个字符串,不再包含varaible。您应该避免使用带引号的标识符。它们会让你的生活变得更加复杂。使用单引号“而不是双引号”来表示string@GrzegorzGrabek我现在澄清了这个问题,但是“@firstname”是一个函数参数,所以它需要双引号。我试图通过执行“%”@firstname来规避这个问题“%”
但这会将整个变量变成一个字符串,不再包含varaible。您应该避免使用带引号的标识符。它们让你的生活变得比它应该的复杂得多。我在读这篇文章之前尝试了FORMAT(),它奏效了,但我非常喜欢CONCAT()语法。我在读这篇文章之前尝试了FORMAT(),它奏效了,但我非常喜欢CONCAT()语法。