2012-03-06 7 views
3

私は別のテーブルから行をフィルタリングするために使用する必要がある正規表現を持つテーブルを持っています。以下のような
何か:明らかSQLクエリの条件としてテーブルに格納された正規表現を使用します。

SELECT * 
FROM a 
WHERE foo SIMILAR TO '(SELECT regex FROM b)' 

、それは構文ではないと私は反復処理する必要がbの複数の行があるため動作しません。

私はPostgreSQL 8.3を使用しています。

+0

希望するサンプルデータを投稿する – Teja

+0

'SIMILAR TO'は正規表現を使用せず*独自のパターンセットを内部的に正規表現に書き換えていますか?私は最近[dba.SEに関する包括的な答えを書いた](http://dba.stackexchange.com/a/10696/3684) –

+0

あなたはpg9.2がほぼ一年間外れていたことを知っていますよね? – Andrew

答えて

5

おそらく参加するのは効果がありますか?例えば。

SELECT a.*, b.regex 
    FROM a JOIN b ON a.foo ~ b.regex 

は、私は確かに言うことは十分にPostgresのに慣れていないよ怖いが、これは、行を反復処理のSQLにおける通常の方法だろう。複数の正規表現がマッチした場合、a.fooを複数回返すべきです。

関連する問題