2011-12-05 2 views
1

まず、私の悪い英語を残念に思っています。レジストリごとにPostgresループを作成し、別のテーブルで検索します

私はpostgresとデータベースの構文に新しく、私はvarsと呼ばれるテーブルを持っています。私は別のテーブルに、テキスト、長いテキストからレジストリを持っています。

私が持っているバールごとに、正規表現でテキストを検索する必要があります。テキストのvarsのいずれかと一致する場合は、Okを押してselectを返します。

これは可能ですか?

もう一度、英語が悪い場合は申し訳ありません。

よろしくお願いいたします。

+0

検索するサンプルデータを含めることができ、そのデータを検索するために使用する正規表現をサンプリングすることができます。例を詳細にすれば、より良い答えが得られます。 – Kuberchaun

+0

ありがとう、私はより良い投稿を作成しています。 –

答えて

1

はい、可能です。あなたが保存された機能とPostgreを内蔵したことの能力を検索する正規表現を利用したいよう

が鳴ります。

方法http://www.postgresql.org/docs/9.1/static/functions-matching.html

を検索するには、このリンクを読んで、私はあなたがこのような何かをしたいと思います。私はコンパイルしていないことに注意してください。これは私の頭の中でそれを突き刺すだけなので、ちょっと微調整して、データに対して確かにテストする必要があります。しかし、うまくいけばそれはあなたに一般的なアイデアを与えます。以下の関数は単一の目的を持つように記述したので、この関数を各var値に対して呼び出します。これをラッパー関数で呼び出すと、すべてのvar値を一度に渡して、それぞれのvar関数を呼び出すすべてのvar値をループすることができます。

CREATE FUNCTION search_var(i_some_text_id IN INTEGER,i_regx IN TEXT) RETURNS VARCHAR AS $$ 
DECLARE 
    is_found VARCHAR(6) := 'NOT OK'; 
BEGIN 

    SELECT 'OK' INTO is_found 
    FROM some_text 
    WHERE some_text_id = i_some_text_id 
     AND text_value ~ i_regx; 

    RETURN is_found; 
END; 
$$ LANGUAGE plpgsql; 
+0

私はスペースや改行なしでテキストを所有していますが、この変数のリストはこのテキストのリサーチとして使用されます。あなたはこの役割で私にこれを提供できると思いますか?ありがとうございました –

関連する問題