2009-12-03 43 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示例或帶有示例的鏈接。

+1

甲骨文不支持正則表達式的,直到10g中,SQL Server的加入V2005支持。沒有我知道的ANSI標準語法 - 正則表達式,但用於執行此操作的函數在供應商之間會有所不同。 – 2009-12-03 19:41:50

回答

4

對於MySQL(和可能是其他數據庫太):

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

太棒了!感謝您的快速回復。 – Pete 2009-12-03 19:43:51

+0

只是一個快速更新 - 我發現它只在MySQL中工作,如果我的結構如下查詢: SELECT * FROM表WHERE「狗」RLIKE(列1) – Pete 2009-12-03 20:09:34

+0

你會怎麼做Rails的活動記錄查詢接口? – Ephraim 2015-06-16 15:25:53