Postgresql

Postgresql 在文本中搜尋 6 位數字

  • May 26, 2022

我有一個包含一個欄位地址的表 - varchar(250),是否可以在該欄位中搜尋 6 位(整數)Pincode。是否也可以列出沒有任何 12 位密碼的記錄。

Sl No |  Address 
1 | "16/127, Off M G Road, Goregaon (west) Mumbai, Maharashtra, 400062 02228744298"
2 | "113, 113,ragiptblr-2, Ragi Pet Bangalore, Karnataka, 560002 2229218"
3 | "2, 2, Panchal Estate, Bapunagar Ahmedabad, Gujarat, 380024 079227401432nd Flr, B Wing, Jay Chamber, Service Rd, Near Telephone Exchange, Vile Parle (east) Mumbai, Maharashtra, 400057 02226104168"
4 | "New#27, Gopalakrishna Street, T Nagar Chennai, Tamil Nadu, 600017 04428150211"
5 | "9360 61/8, Multani Dhanda, Pahar Ganj Delhi, Delhi, 110055 01123550815"
6 | "113, 113,ragiptblr-2, Ragi Pet Bangalore, Karnataka,  2229218"
7 | "9360 61/8, Multani Dhanda, Pahar Ganj Delhi, Delhi,  01123550815"

你想要這樣的東西(參見這裡的小提琴工作範例https://dbfiddle.uk/?rdbms=postgres_13&fiddle=597791c50d76e6e279b3318abe573acf):

select 
 substring(address from ' \d{6} ') as sstr
where
 address ~ '\d{12}"';

您的輸入數據似乎存在一些問題。記錄號 3 似乎連接了 2 條記錄。我假設這是一個錯字!

請原諒這個答案的質量不佳 - 我在公共汽車上使用質量很差的平板電腦(下週一將其退回亞馬遜)。我回家後會把它清理乾淨!

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