2009-12-03 14 views
5

私は、データベース内の正規表現にクエリを照合する方法を見つけようとしています。 MySQLのようなほとんどのDBMSは、検索のためにregex optionを持っていますが、次のようなことができます:クエリをSQLの正規表現に一致させますか?

私の正規表現に一致する列1のすべての行を検索してくださいクエリ。

は、私は何をすることができるようにしたいことは反対、すなわち:

列1の正規表現は、私のクエリに一致するように1列のすべての行を検索します。

簡単な例 - 私は、データベースがそのような構造していたと言う:

+----------+-----------+ 
| Column 1 | Column 2 | 
+----------+-----------+ 
| [a-z]+ | whatever | 
+----------+-----------+ 
| [\w]+ | whatever | 
+----------+-----------+ 
| [0-9]+ | whatever | 
+----------+-----------+ 

私は「犬」を照会のであれば、私はそれが[AZ] +と[と行を返すようにしたいです\ w] +、私がを照会すると、[0-9] +の行が返されます。

SQLでこれを行う方法がわかっている場合は、短いSELECTの例やリンクを参考にしてください。 MySQLの

+1

Oracleは10グラムまでの正規表現のをサポートしていませんでした、SQL Serverはv2005でのサポートを追加しました。 regexは認識しているANSIの標準構文はありませんが、これを行うために使用される関数はベンダーによって異なります。 –

答えて

4

(とあまりにも他のデータベースでもよい):PostgreSQL

SELECT * FROM table WHERE "dog" RLIKE(`Column 1`) 
+0

素晴らしい!早速お返事をいただきありがとうございます。 – Pete

+0

ちょっと速いアップデート - クエリを構造化すればMySQLでしか動かないことがわかりました: SELECT * FROM table WHERE "dog" RLIKE(Column 1) – Pete

+0

Rails Active Recordクエリインタフェース? – Ephraim

1

が、それは次のようになります。

SELECT * FROM table WHERE 'dog' ~ "Column 1"; 
関連する問題