Sql 无法在Postgres中对反向引用的字符串进行小写

Sql 无法在Postgres中对反向引用的字符串进行小写,sql,regex,postgresql,string-function,Sql,Regex,Postgresql,String Function,我正在尝试将反向引用的字符串小写,但它不起作用:(我只想降低root后面的第一个字符 my_string = "<root>Here is July's best food</root>" my_string=“这是七月最好的食物” 正确答案应该是: my_string = "<root>here is July's best food</root>" my_string=“这是七月最好的食物” 我的问题是: UPDATE my_table

我正在尝试将反向引用的字符串小写,但它不起作用:(我只想降低root后面的第一个字符

my_string = "<root>Here is July's best food</root>"
my_string=“这是七月最好的食物”
正确答案应该是:

my_string = "<root>here is July's best food</root>"
my_string=“这是七月最好的食物”
我的问题是:

UPDATE my_table
SET my_string = regexp_replace(my_string, '<root>(.)', lower(E'<root>\\1'))
WHERE my_id = 1;
更新我的表格
设置my_string=regexp_replace(my_string,“()”,下限(E'\\1'))
其中my_id=1;
使用
split\u part()
lower()

更新

UPDATE my_table
    SET my_string = lower_first_word('<root>Here is July''s best food</root>','<root>')
    WHERE my_id = 1;
update语句是

UPDATE my_table
SET my_string = lower(substring('<root>Here is July''s best food</root>', E '[A-Za-z<>]+')) || substring('<root>Here is July''s best food</root>', E '[^ ]* (.*)')
WHERE my_id = 1;
更新我的表格
设置my_string=lower(子字符串(“这是七月最好的食物”,E'[A-Za-z]+))| |子字符串(“这是七月最好的食物,E'[^]*(*))
其中my_id=1;
UPDATE my_table
SET my_string =  '<root>'||lower(split_part(split_part(my_string,' ',1),'>',2)) || split_part(my_string,split_part(split_part(my_string,' ',1),'>',2),2) 
WHERE my_id = 1;
 create or replace function lower_first_word(txt text,del text) returns text as
$$
 select del||lower(split_part(split_part(txt ,' ',1),'>',2)) || split_part(txt ,split_part(split_part(txt ,' ',1),'>',2),2)
$$
language sql 
UPDATE my_table
    SET my_string = lower_first_word('<root>Here is July''s best food</root>','<root>')
    WHERE my_id = 1;
select lower(substring('<root>Here is July''s best food</root>',E'[A-Za-z<>]+'))||substring('<root>Here is July''s best food</root>',E'[^ ]* (.*)')
UPDATE my_table
SET my_string = lower(substring('<root>Here is July''s best food</root>', E '[A-Za-z<>]+')) || substring('<root>Here is July''s best food</root>', E '[^ ]* (.*)')
WHERE my_id = 1;