mysql 存储过程 字符串分割字符串_Mysql存储过程中字符串分割

今在项目中碰到了要把字符串分割,记录下来,以后可能还用的到

首先想上我的存储过程代码

DELIMITER $$

USE `bplate`$$

DROP PROCEDURE IF EXISTS `lp_plate_insertplateinfo`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `lp_plate_insertplateinfo`(

plate_user INT,

plate_title VARCHAR(60) ,

plate_type INT,

plate_img VARCHAR(500),

plate_content MEDIUMTEXT,

plate_sku_name VARCHAR(60),

plate_sku_price VARCHAR(60)

)

BEGIN

DECLARE i INT DEFAULT 0;

SET @sql1=CONCAT("INSERT INTO bp_plate(`plate_user`,`plate_title`,`plate_type`,`plate_img`,`plate_sales`,`plate_content`,`plate_level`,`plate_time`,`plate_state`) VALUE(",plate_user,",'",plate_title,"',",plate_type,",'",plate_img,"',",0,",'",plate_content,"',0,NOW(),1)");

PREPARE sql1 FROM @sql1;

EXECUTE sql1;

SET @plate_id='';

SELECT LAST_INSERT_ID() INTO @plate_id FROM bp_plate LIMIT 0,1;

SET @arraylength=1+(LENGTH(plate_sku_name) - LENGTH(REPLACE(plate_sku_name,',','')));

WHILE i

DO

SET i=i+1;

SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_name,',',i)),',',1));

SET @resultprice = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_price,',',i)),',',1));

INSERT INTO bp_plate_sku(`plate_id`,`sku_name`,`sku_price`,`sku_time`,`sku_state`) VALUE(@plate_id,@result,@resultprice,NOW(),1);

END WHILE;

END$$

DELIMITER ;

这是我整个存储过程,分割的是传进来的plate_sku_name VARCHAR(60),

plate_sku_price VARCHAR(60)变量,注意类型不能是int,不然不能分割

然后只要分割方法在于

SET @arraylength=1+(LENGTH(plate_sku_name) - LENGTH(REPLACE(plate_sku_name,',','')));

WHILE i

DO

SET i=i+1;

SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_name,',',i)),',',1));

SET @resultprice = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_price,',',i)),',',1));

INSERT INTO bp_plate_sku(`plate_id`,`sku_name`,`sku_price`,`sku_time`,`sku_state`) VALUE(@plate_id,@result,@resultprice,NOW(),1);

END WHILE;@arraylength获取要分割字符串根据符号分割后的数组长度

之后便是一个while循环

中间用REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_name,',',i)),',',1));方式来分割

里面的‘,’是根据要分割的字符,plate_sku_name是要分割的字符串,变量i要从1开始

之后便能分割了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值