我有一堆我想檢測的字符,以便在 postgres 的查詢中將其更改為它們的等價物。
例如,如果我有這個字串'Résidence du Chateau de Salles',我想將 char 'é'更改為char 'e',將 char 'a'更改為char 'a'。
同時改變'a'和'é'的唯一方法是連接postgres的regexp_replace指令,如下所示:
select lower(regexp_replace(regexp_replace('Résidence du Chateau de Salles', 'é', 'e', 'g'), 'a', 'a', 'g'));
如果我想用其他等價物更改這個字符塊:aê??? -> aeiou, ????ü -> aeiou, áéíóú -> aeiou, àèìòù -> aeiou, ? -> n, ? -> c
我必須連接一堆regexp_replace的函式。每個字符的每個功能:
select lower(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace('Résidence du Chateau de Salles', ..............................);
有沒有其他最好的方法來做到這一點?
uj5u.com熱心網友回復:
如果您只想用另一個字符替換單個字符,這translate()是一個更簡單的選擇:
select translate('Résidence du Chateau de Salles', 'éa', 'ea')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484231.html
