gpt4 book ai didi

PostgreSQL regexp_matches 只返回匹配的行?

转载 作者:行者123 更新时间:2023-11-29 11:42:55 24 4
gpt4 key购买 nike

这是我第一次使用 regexp_matches,我发现使用它只会返回匹配 SELECT 子句中所有 regexp_matches 的行。

例如:

SELECT parameters, 
regexp_matches(parameters, 'a=(\d+)'),
regexp_matches(parameters, 'b=(\d+)')
FROM table;

将返回参数为 a=1&b=1 但不是 a=1b=1 的行的结果

它的作用就好像它是一个 where 子句。这是为什么?

最佳答案

这是因为 regexp_matches() 返回行集。如果没有匹配项,则不会返回任何行。

使用一个正则表达式搜索,例如:

SELECT 
parameters,
regexp_matches(parameters, '[a|b]=(\d+)')
FROM a_table;

或者,如果您想为 ab 获取两列:

SELECT parameters, a, b
FROM (
SELECT
parameters,
regexp_matches(parameters, 'a=(\d+)') a,
null b
FROM a_table
UNION
SELECT
parameters,
null,
regexp_matches(parameters, 'b=(\d+)')
FROM a_table
) s;

关于PostgreSQL regexp_matches 只返回匹配的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34210618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com