Postgresql
返回具有可變長度的字元串的一部分
我在如下表列中有數據:
host=0.0.0.0 port=5432 dbname=database_name user=pglogicaluser host=0.0.0.0 port=5432 dbname=database_name2 user=pglogicaluser
我想編寫一個查詢來獲取數據庫名稱,如下所示:
database_name database_name2
我可以想出類似的東西:
select substring(column_name, '.+dbname=(.*)$') from table_name;
但是,我不知道如何在
user
關鍵字開始之前停止提取。
您需要在正則表達式組之後包含一個空格,作為分隔符將使用者關鍵字與要匹配的文本分開。在這種情況下,要使正則表達式匹配,需要一個額外的“任何其他字元”。
substring(column_name, '.+dbname=(.*) .*$')