表名是article 需要修改的字段为keywords , 将 “|魅力芜湖|文物保护|委员会|”改为“魅力芜湖,文物保护,委员会”.然后keywords 这个字段 有些值本身就是 “国内,新闻”这种值,不需要改。
请问我该怎么写。 用 trim ?然后replace 具体怎么写我不知道,希望大神来帮助!
UPDATE article
SET keywords= REPLACE ( keywords, '| ', ',' );
再删除首位的|,用substring,UPDATE article SET keywords= substring ( keywords, 1,length(keywords)-1 );
UPDATE article SET keywords=RIGHT(keywords,len(keywords)-1)
WHERE keywords LIKE '|%' ;
UPDATE article SET keywords=LEFT(keywords,LEN(keywords)-1)
WHERE keywords LIKE '%|';
UPDATE article SET keywords=REPLACE(keywords,'|',',')
UPDATE article SET keywords=RIGHT(keywords,len(keywords)-1)
WHERE keywords LIKE '|%' ; -- 去掉左边的‘|’
UPDATE article SET keywords=LEFT(keywords,LEN(keywords)-1)
WHERE keywords LIKE '%|'; -- 去掉右边的‘|’
UPDATE article SET keywords=REPLACE(keywords,'|',',') -- 把中间的‘|’替换成‘,’
下面的解决方案应该比较适合你:
#去除首尾指定字符","
select TRIM(BOTH ',' FROM B.strA) as strB from (
#先将所有的"|"换成","
select REPLACE(A.str,"|",",") as strA from
(select '|a|b|c|d|e,f,g|' as str from dual) A
)B;
#你也可以缩减成一条语句,即是
select TRIM(BOTH ',' FROM
REPLACE('|a|b|c|d|e,f,g|', "|", ",")
) as str from dual;
我觉得你可以把所有的|换成,,然后再把首尾的逗号删除,我SQL学的不多,这是我理解的方法不知道可不可以实现