2016-06-30 15 views
2

私の現在のクエリは次のとおりです。Postgresで_が2つしかない行を見つけるにはどうしたらいいですか?

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

これが返されます。

  • をジルは、テストで回答の彼女は_なしていることを見つけるためにショックを受けました。
  • ブルックリンは喜んで立っていた_彼女の頭は誇らしげに_頭の頭。
  • 健康的な食事はアイデアです。
  • 私は映画を見る。

2(またはそれ以上)_の2番目と4番目のケアのようなアイテムを返すだけです。 ____を隣り合わせに返すことは望ましくありません。

答えて

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

+0

@Shamoon 'WHERE questionText〜「(([^ _] + | ^)_([^ _] + | $)){2、} '' – Abelisto

+0

答えてください、私はそれを受け入れます – Shamoon

関連する問題