Heim > Datenbank > MySQL-Tutorial > Hauptteil

So speichern Sie MySQL-String-Felder gemäß Komma-Interception

一个新手
Freigeben: 2017-09-08 10:38:01
Original
1711 Leute haben es durchsucht

Ich habe lange danach gesucht. Ich möchte MySQL verwenden, um die Zeichenfolge mit „,“ in mehrere Daten aufzuteilen. Um diese Funktion zu implementieren, muss ich sie verwenden ,


Konvertieren in


Schließen Sie das N darin aus und extrahieren Sie dann die Zahl :

#查看已存在的存储过程:SHOW PROCEDURE STATUS
Nach dem Login kopieren
# 函数:func_split_TotalLength 
DELIMITER $$ 
DROP function IF EXISTS `func_split_TotalLength` $$ 
CREATE FUNCTION `func_split_TotalLength` 
(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11) 
BEGIN
Nach dem Login kopieren
# 计算传入字符串的总length 
return 1+(length(f_string) - length(replace(f_string,f_delimiter,''))); 
END $$ 
DELIMITER;
Nach dem Login kopieren
# 函数:func_split 
DELIMITER $$ 
DROP function IF EXISTS `func_split` $$ 
CREATE FUNCTION `func_split` 
(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8 
BEGIN
Nach dem Login kopieren
 # 拆分传入的字符串,返回拆分后的新字符串 
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;
Nach dem Login kopieren
# 存储过程:splitString 
DELIMITER $$ 
DROP PROCEDURE IF EXISTS `splitString` $$ 
CREATE PROCEDURE `splitString` 
(IN f_string varchar(1000),IN f_delimiter varchar(10)) 
BEGIN
Nach dem Login kopieren
# 拆分结果 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;
Nach dem Login kopieren
#插入除了&#39;N&#39;之外的所有数据
IF func_split(f_string,f_delimiter,i) != &#39;N&#39; THEN
insert into tmp_split(`status`) values (func_split(f_string,f_delimiter,i)); END IF; 
end while; 
END$$ 
DELIMITER;
Nach dem Login kopieren
call splitString( (SELECT overdue_record_2year FROM Loan l WHERE l.papers_id = 231203199305030219 ORDER BY papers_id DESC LIMIT 1) ,","); 
select * from tmp_split;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo speichern Sie MySQL-String-Felder gemäß Komma-Interception. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage