如何使用LIKE运算符匹配PostgreSQL中FreeRADIUS中的变量?

斯托乔·加涅夫

在FreeRADIUS执行的PostgreSQL查询中,我想做类似的事情(表名和值只是示例):

SELECT name
FROM users
WHERE city LIKE '%blahblah%';

但是有一个陷阱:blahblah值包含在FreeRADIUS变量中,用'%{variable-name}'表示。它扩展为“ blahblah”。

现在我的问题是:如何使用LIKE运算符将%{variable-name}变量与表中存储的值匹配?

我尝试使用

SELECT name
FROM users
WHERE city LIKE '%%{variable-name}%';

但是它不能像这样正确展开,并且显然是错误的。

我要实现的最终查询是

...
WHERE city LIKE '%blahblah%';

因此它与存储在表中的包含'blahblah'的较长字符串匹配,但是我希望该变量动态扩展为正确的查询。有办法吗?

谢谢!

克雷格·林格(Craig Ringer)

胡乱猜测:

假设FreeRADIUS在整个SQL字符串上进行了哑巴替换,而没有尝试解析文本等,那么在将SQL发送到PostgreSQL之前,您可以使用:

SELECT name
FROM users
WHERE city LIKE '%'||'%{variable-name}'||'%';

编辑:为避免FreeRADIUS不能足够巧妙地解析引起的警告,请将%s隐藏为十六进制字符:

WHERE city LIKE E'\x25%{variable-name}\x25';

请注意E字符串的开头,将其标记为要进行转义处理的字符串

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Postgresql中的LIKE运算符

使用'like'运算符的自定义jpa查询中的类型不匹配错误

如何在继承的类上使用运算符重载以匹配C#中的基本运算符

回复:在 Perl 的匹配运算符中插入变量时,如何转义元字符?

如何在其他运算符中使用 Python 运算符中声明的变量?

如何在SQL的Like运算符中获取元音?

使用in运算符匹配元组中的项目

使用like运算符过滤scala中的列名

使用like运算符检查配置单元中的模式

连接查询中的列以使用“LIKE”运算符

如何使用Like运算符将一个表中的字符串与另一个表中的子字符串匹配

C ++中的运算符:如何使用C ++中的运算符将内部对象中的变量值分配给int变量

扩展运算符(*)在PostgreSQL中如何工作?

如何在golang中为变量分配运算符?

如何使用PowerShell匹配运算符

与elasticsearch中的IN运算符完全匹配

如何使用参数中具有不匹配类型的 Rxjs 5.5 `first` 运算符?

如何使用 LIKE 和 %% 运算符在 Web 表单中查询和过滤我的数据?

如何在SQLite查询中对参数使用Like运算符?

如何在Hibernate HQL中对LIKE运算符使用参数化查询?

在SQL查询中如何在LIKE运算符中使用bindValue?

如何在SQL查询中基于布尔数据类型使用LIKE运算符?

LIKE运算符中的多个条件

在 ruby 中的 if 语句运算符中使用变量

使用Ruby将运算符存储在变量中

如何在ggplot中的AES中使用特殊运算符(..count ..等)使用早期声明的变量

PostgreSQL中的'!='和'<>'运算符

SQLAlchemy 中的 PostgreSQL NOT 运算符

如何使用Node.JS将$ inc运算符用于MongoDB中的变量