可以通過replace函數(shù)來獲取特定字符串后,進行字段更新實現(xiàn):
在路南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,路南網(wǎng)站建設(shè)費用合理。
sql:update tablename set name=replace(name,'替換前字段','替換后字段') where name like '%替換前字段%'。
上面的sql語句的意思是替換tablename中name字段的“替換前字段“為”替換后字段“, where后面的語句是篩選出字段中帶有”替換前字段“的name值。
1)instr()函數(shù)的格式? (俗稱:字符查找函數(shù))
格式一:instr( string1, string2 ) ?? /?? instr(源字符串, 目標(biāo)字符串)
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) ? /?? instr(源字符串, 目標(biāo)字符串, 起始位置, 匹配序號)
解析:string2 的值要在string1中查找,是從start_position給出的數(shù)值(即:位置,-1表示從尾部開始倒數(shù)第1個)開始在string1檢索,檢索第nth_appearance(幾)次出現(xiàn)string2。
SELECT?A2.id,A1.name?
from?A2?left?join
A1?on?A2.codeall=A1.code
where?LENGTHB(codeall)-LENGTHB(replace(codeall,',',''))?=?0
union?all
SELECT?A2.id,A11.name||','||A12.name?
from?A2?left?join
A1?A11?on?substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code?left?join
A1?A12?on?substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',-1,1)-1)=A12.code
where?LENGTHB(codeall)-LENGTHB(replace(codeall,',',''))?=?1
union?all
SELECT?A2.id,A11.name||','||A12.name?||','||A13.name?
from?A2?left?join
A1?A11?on?substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code?left?join
A1?A12?on?substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code
A1?A13?on?substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',-1,1)-1)=A13.code
where?LENGTHB(codeall)-LENGTHB(replace(codeall,',',''))?=?2
union?all
SELECT?A2.id,A11.name||','||A12.name?||','||A13.name?||','||A14.name?
from?A2?left?join
A1?A11?on?substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code?left?join
A1?A12?on?substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code
A1?A13?on?substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',1,3)-1)=A13.code
A1?A14?on?substr(A2.codeall,instr(A2.codeall,',',1,3)+1,instr(A2.codeall,',',-1,1)-1)=A14.code
where?LENGTHB(codeall)-LENGTHB(replace(codeall,',',''))?=?3
oracle中可以通過全文檢索替換來實現(xiàn)單個字符的替換。
設(shè)置全文檢索
步驟步驟一:檢查和設(shè)置數(shù)據(jù)庫角色
首先檢查數(shù)據(jù)庫中是否有CTXSYS用戶和CTXAPP腳色。如果沒有這個用戶和角色,意味著你的數(shù)據(jù)庫創(chuàng)建時未安裝intermedia功能 (10G默認(rèn)安裝都有此用戶和角色)。你必須修改數(shù)據(jù)庫以安裝這項功能。默認(rèn)安裝情況下,ctxsys用戶是被鎖定的,因此要先啟用ctxsys的用戶。
步驟二:賦權(quán)
在ctxsys用戶下,授予測試用戶oratext以下權(quán)限:
GRANT resource, CONNECT, ctxapp TO oratext;
GRANT EXECUTE ON ctxsys.ctx_cls TO oratext;
GRANT EXECUTE ON ctxsys.ctx_ddl TO oratext;
GRANT EXECUTE ON ctxsys.ctx_doc TO oratext;
GRANT EXECUTE ON ctxsys.ctx_output TO oratext;
GRANT EXECUTE ON ctxsys.ctx_query TO oratext;
GRANT EXECUTE ON ctxsys.ctx_report TO oratext;
GRANT EXECUTE ON ctxsys.ctx_thes TO oratext;
GRANT EXECUTE ON ctxsys.ctx_ulexer TO oratext;
步驟三:設(shè)置詞法分析器(lexer)
--查詢測試
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 or 俄羅斯',20)0;
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 or 歐洲',20)0;
--基本查詢
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡',20)0;
--查詢包含多個詞語and測試通過
SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移動城堡 and 歐洲',20)0;
測試通過。