【发布时间】:2015-11-09 14:45:11
【问题描述】:
我在 postgresql 数据库中有一个名为“OptionsDetail”的表,其列名为“URL”。 “URL”列包含以下数据
网址
http://www.site1.com/ebw/file1/detail.action?cid=1
http://www.another2.com/ebw/file1/detail.action?cid=11&code=MYCODE
http://www.anothersite3.com/ebw/file1/detail.action?cid=12&code=ANOTHERCODE&option=ROOM
现在我想将 URL 中的数据替换为
网址
/file1/detail.action?cid=1
/file1/detail.action?cid=11&code=MYCODE
/file1/detail.action?cid=12&code=ANOTHERCODE&menu=ROOM
我编写了以下查询来执行上述功能
UPDATE "OptionsDetail" SET "URL" = replace("URL",'http://%/ebw/file1','/file1') WHERE "URL" LIKE '%/ebw/file1%';
还有我这样写的另一种方式
UPDATE "OptionsDetail" SET "URL" = replace("URL",'%/ebw/file1','/file1') WHERE "URL" LIKE '%/ebw/file1%';
查询正在成功执行,例如:200 行受影响,但“URL”列数据没有改变我需要的方式,数据保持原样。
请帮我解决这个问题
【问题讨论】:
-
replace不支持通配符。你想要regexp_replace
标签: sql postgresql