mysql下將分隔字串轉換為陣列

2022-06-07 12:18:11 字數 2197 閱讀 5888

推薦 mysql的find_in_set()函式

mysql儲存過程可以用於分割字串,下面就為您詳細介紹這種mysql儲存過程的用法,供您參考學習之用。

然後使用where in()方法可以查詢。

1、具體函式:

# 函式:func_split_totallength

delimiter $$ 

drop function if exists `func_split_totallength` $$ 

create definer=`root`@`%` function `func_split_totallength` 

(f_string varchar(1000),f_delimiter varchar(5)) returns int(11) 

begin 

# 計算傳入字串的總length 

return 1+(length(f_string) - length(replace(f_string,f_delimiter,''))); 

end$$ 

delimiter; 

# 函式:func_split

delimiter $$ 

drop function if exists `func_split` $$ 

create definer=`root`@`%` function `func_split` 

(f_string varchar(1000),f_delimiter varchar(5),f_order int) returns varchar(255) charset utf8 

begin 

# 拆分傳入的字串,返回拆分後的新字串 

declare result varchar(255) default ''; 

set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1)); 

return result; 

end$$ 

delimiter; 

# 儲存過程:splitstring

delimiter $$ 

drop procedure if exists `splitstring` $$ 

create procedure `splitstring` 

(in f_string varchar(1000),in f_delimiter varchar(5)) 

begin 

# 拆分結果 

declare cnt int default 0; 

declare i int default 0; 

set cnt = func_split_totallength(f_string,f_delimiter); 

drop table if exists `tmp_split`; 

create temporary table `tmp_split` (`status` varchar(128) not null) default charset=utf8; 

while i < cnt 

do set i = i + 1; 

insert into tmp_split(`status`) values (func_split(f_string,f_delimiter,i)); 

end while; 

end$$ 

delimiter; 

2、測試是否能成功分割

select * from tmp_split; 

執行結果如下,說明分割成功:

select * from tmp_split;  

3、應用where in()查詢

# 先傳入字串,分割後儲存在臨時表tmp_split中   

# 將查詢的結果作為其他查詢的條件來使用   

select * from fruit where in(select * from tmp_split);   

以上就是利用mysql儲存過程分割字串的方法介紹。

轉 : 

轉 : 

參考: mysql的find_in_set()函式

** 

將數字轉換為字串

在日常程式設計中,我們經常需要將各型別的數字轉換為字串,這裡介紹幾種簡單方法。本文沒有介紹轉換的具體演算法。1.使用巨集轉換常量數字為字串 定義如下的巨集 define to string x x 則在 中就可以將各種型別的數字轉換為字串。這個巨集可以將任意的 中的字串轉換為c語言風格的字串 例 t...

將字串轉換為整數

該問題的知識點 1.對於c 風格的字串來說,結尾標誌位 0 2.將純數字字串轉換為整數,需要依次的拿前乙個字元生成的數字乘以 10 再加上當前字元和 0 的差 3.對於特殊情況的處理 空字元陣列 字串中間有空格,字串前面會有很多空格 字串中間存在不合法字元 字串第乙個非空字元為 或者 對於最大正整數...

將字串轉換為整數

這是一道經典的面試題,在收到這樣一道題時我們不要急於動手,先思考一下這道題的解決思路 1.在函式呼叫時我們需要用指標來接收陣列的位址,那麼指標是否需要判空?2.如果獲取的字串起始位出現 號該如何處理?3.如果獲取到的並非數字字串該如何處理?4.如果獲取的字串正確,該如何返回成整數形式?5.如過獲取的...