如何在Postgres中找到只有2 _的行?

时间:2016-06-30 20:50:07

标签: postgresql

我目前的查询是:

SELECT * FROM "Questions" WHERE "questionText" ~ '[ $][_][$ ]' AND "status" != 'inactive';

返回:

  • Jill很震惊地发现她没有在测试中找到答案。
  • 布鲁克林幸福地站在她的头顶上,她的头顶很开心。
  • 健康饮食是一种理念。
  • 我_看一部_电影。

我只想用2(或更多)_返回第二和第四次护理等项目。我不想让多个____彼此相邻。

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

WITH questions (questionText, status) AS (
VALUES
    ('Jill was shocked to find that she _ none of the answers in the test.','active'),
    ('Brooklyn stood joyously _ her crown proudly _ top _ her head','active'),
    ('A healthy diet is a _ idea.','active'),
    ('I _ watch a _ movie.','active')
)

SELECT questionText
FROM questions
WHERE array_length(regexp_split_to_array(questionText,'[ $][_][$ ]'),1) > 2
AND status != 'inactive'; 

<强>输出

enter image description here