Postgresql

返回具有可變長度的字元串的一部分

  • March 23, 2022

我在如下表列中有數據:

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=(.*) .*$') 

引用自:https://dba.stackexchange.com/questions/309994