我有一个这样的字符串:0002000B0016001M001S002A
(变量字符串长度但可被4整除)
我需要将它(在MySql中)分成4个字符的块
预期结果:
@my_var = '0002'
@my_var = '000B'
@my_var = '0016'
@my_var = '001M'
@my_var = '001S'
@my_var = '002A'
我认为SUBSTR()可以在这里使用,但我不知道如何在mysql的循环中管理下一个位置
或者某些等同于PHP for MySql中的chunk_split()?
答案 0 :(得分:2)
因此,您希望将每个4字节长序列用作过程的一部分,但不太确定如何使用SUBSTR
来执行此操作?然后,像:
DELIMITER #
CREATE PROCEDURE split_string_in_fours(string VARCHAR(256))
BEGIN
DECLARE len INT UNSIGNED DEFAULT 0;
DECLARE pos INT UNSIGNED DEFAULT 1;
DECLARE var CHAR(4) DEFAULT '';
SET len = LENGTH(string);
WHILE pos < len DO
SET var=SUBSTR(string, pos, 4);
SET pos=pos+4;
END WHILE;
END #
DELIMITER ;
警告:未经考验。这里,var
包含您想要的4字节序列。该过程采用要拆分的字符串。作为SELECT
的结果,您可能已在此过程中使用此功能,在这种情况下,您可以直接使用它