[PostgreSQL] 利用正規表示法取出欄位中值的一部分
最近在研究 Perl 的正規表式法,
但沒想到這正規表示法在 PostgreSQL 上也可以使用,而且相當的方便~
舉例來說,現在在 tb_setting 這個資料表中,有類似下面的資料:
key | value |
conf_type_1_val | FTP |
conf_type_2_val | HTTP |
conf_type_5_val | SSH |
想要一次將 1 ==> FTP, 2 ==> HTTP, 5 ==> SSH 這樣的對應拿出來,要如何做呢?
當然你可以用 SELECT * FROM tb_setting,然後再一個個對 key 做字串處理,
不過~在 PostgreSQL 裡提供了更方便的正規表式法,來做這件事情~
因此,你只要用 SUBSTRING() 搭配正規表式法,就能做好上述的事情囉~
SELECT SUBSTRING(key, ‘([0-9]+)’) AS type, value FROM tb_setting WHERE key LIKE ‘conf_type%%val’
執行完後結果就會成為:
type | value |
1 | FTP |
2 | HTTP |
5 | SSH |
除了 SUBSTRING(),PostgreSQL 還支援正規表示法用在許多其他的函式上,
可以參考 PostgreSQL: Pattern Matching 囉~
(本頁面已被瀏覽過 589 次)