2011-02-09 44 views
56

我目前擁有的以下查詢使用正則表達式:在其中的Postgres

select regexp_matches(name, 'foo') from table; 

我怎麼能改寫這一點,以便正則表達式是這樣(不工作)的其中:

select * from table where regexp_matches(name, 'foo'); 

當前錯誤信息是: ERROR:的WHERE的類型必須是布爾參數,不鍵入文本[] SQL狀態:42804 性格:29

回答

94

收件代替:

select * from table where name ~ 'foo' 

的「〜」運算符產生一個布爾結果是否爲正則表達式匹配或不而非提取匹配子組。

36

只要使用匹配運算符有:

select * from table where name ~ 'foo';