yos*_*bel 4 postgresql sql-like jsonb
我正在尝试检查某些文本是否包含文本和 Postgres 数组中的值的串联,例如:
SELECT true from jsonb_array_elements('["a", "b"]'::jsonb) as ids
WHERE 'bar/foo/item/b' LIKE '%item/' || ids->>'id' || '%'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: invalid input syntax for type json Detail: Token "%" is invalid. Position: 95 Where: JSON data, line 1: %...
Run Code Online (Sandbox Code Playgroud)
如何利用数组的值,将它们与文本连接起来并检查LIKE表达式?
我已经尝试了几种明确添加演员表的想法::jsonb,但到目前为止还没有运气。
问题是||and->>运算符具有相同的优先级并且是左结合的,所以表达式被解释为
(('%item/' || ids) ->>'id') || '%'
Run Code Online (Sandbox Code Playgroud)
您必须添加括号:
'%item/' || (ids->>'id') || '%'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10090 次 |
| 最近记录: |