MySQL處理字元分隔反轉

2021-09-24 22:04:10 字數 1675 閱讀 5979

/*翻譯反轉*/

create definer = 'root'@'localhost'

function dcs_dev.function1(in_str varchar(256), in_delimiter varchar(8))

returns varchar(256) charset utf8

begin

declare v_count int;

declare v_to_be_process varchar(256);

declare v_remaining varchar(256);

declare v_len int;

declare v_res varchar(256) default '';

/*獲取需要迴圈的次數*/

select length(in_str) - length(replace(in_str,in_delimiter,'')) into v_count;

set v_remaining = in_str;

set v_count = v_count + 1;

repeat

set v_len = instr(v_remaining,in_delimiter);

/*從1開始擷取*/

set v_to_be_process = substr(v_remaining from 1 for v_len);

/*in_delimiter只佔乙個字元,擷取in_delimiter*/

set v_to_be_process = left(v_to_be_process,1);

/*剩餘待處理的資料*/

set v_remaining = substr(v_remaining,v_len+1);

/*不存在分隔符時,直接將剩餘字串賦值給 分隔後 待處理字串*/

if v_len = 0 then

set v_to_be_process = v_remaining;

end if;

if v_to_be_process = 'a' then

if length(v_res) > 0 then

set v_res = concat(v_res,in_delimiter,1);

else

set v_res = 1;

end if;

elseif v_to_be_process = 'b' then

if length(v_res) > 0 then

set v_res = concat(v_res,in_delimiter,2);

else

set v_res = 2;

end if;

elseif v_to_be_process = 'c' then

if length(v_res) > 0 then

set v_res = concat(v_res,in_delimiter,3);

else

set v_res = 3;

end if;

end if;

/*遞減*/

set v_count = v_count - 1;

until v_count = 0

end repeat;

return v_res;

end

字串按特定分隔符反轉

阿里巴巴的實習生筆試題,實現將字串按特定分隔符進行反轉,如 www.taobao.com 反轉後為 com.taobao.www 要求時間複雜度為o n 空間複雜度為o 1 解題思想 用兩個指標記錄分隔符之間的子字串,然後先將子字串進行反轉,逐段全部反轉後,再將整個字串進行一次反轉。cpp view...

字串處理 字串反轉

請原諒博主今天很閒,於是乎博主又開始更新微博了。這次要更新的問題是 編寫乙個函式,反轉乙個單詞的順序。例如 do or do not,there is no try.就要反轉成 try.no is there not,do or do 大家要認真看看這道題,這道題和大家想象的貌似有點不同。首先字串反...

MySQL對分隔符的處理(一)

mysql對分隔符的處理 一 2011 09 07 22 24 系統命令無需在語句結尾處新增分號直接回車即可,通常情況下長格式的系統命令在行尾新增分號不會影響命令的正常執行,如 use test 習慣了每敲一條命令都打乙個分號的管理員和程式設計師們現在注意了,分號不要隨便敲,mysql在這裡給我們挖...