归档电商信息到临时表
使用函数说明:
SUBSTRING:
格式:
substring(str, pos)
substring(str, pos, length)
说明:
substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
REPLACE:
格式:
replace(object,search,replace)
说明:
用replace替换object的search
CHAR_LENGTH:
格式:
CHAR_LENGTH(str)
说明:
返回值为字符串str 的长度,长度的单位为字符。
LTRIM:
格式:
LTRIM(str)
说明:
去除字符串左边的空格
RTRIM:
格式:
RTRIM(str)
说明:
CREATE TABLE `iwebshop_goods_mark` (
`ITEMS` varchar(50) NOT NULL COMMENT '品目',
`BRAND` varchar(255) NOT NULL COMMENT '品牌',
`MODEL` varchar(255) NOT NULL COMMENT '产品型号',
`QUOTATION_PRICE` float(10,2) NOT NULL COMMENT '政采报价',
`MARKEI_SKU` int(11) NOT NULL COMMENT '电商SKU',
`MARKET_PRICE` float(10,2) NOT NULL COMMENT '电商价格',
) ENGINE=InnoDB DEFAULT CHARSET=utf8
处理的存储过程
CREATE PROCEDURE SPLIT()
BEGIN
--品目:ITEMS
DECLARE ITEMS varchar(50);
--品牌:BRAND
DECLARE BRAND varchar(255);
--产品型号:MODEL
DECLARE MODEL varchar(255);
--政采报价:QUOTATION_PRICE
DECLARE QUOTATION_PRICE float(10,2);
--电商SKU:MARKEI_SKU
DECLARE MARKEI_SKU int(11);
--电商价格:MARKET_PRICE
DECLARE MARKET_PRICE float(10,2);
--状态属性
DECLARE DONE VARCHAR(10);
DECLARE BRANDCURSOR CURSOR FOR SELECT
b.`name` as ITEMS,
c.`name` as BRAND,
SUBSTRING(REPLACE(a.name,' ',''),CHAR_LENGTH(LTRIM(RTRIM(c.name))) + 1) AS MODEL,
a.market_price AS QUOTATION_PRICE,
a.id AS MARKEI_SKU,
(a.market_price * 0.98) AS MARKET_PRICE
FROM
iwebshop_goods a,
iwebshop_category b,
iwebshop_brand c
WHERE
a.model_id = b.model_id
AND
a.brand_id = c.id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE;
OPEN BRANDCURSOR;
read_loop: LOOP
-- 提取游标里的数据
FETCH BRANDCURSOR INTO ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE;
-- 声明结束
IF DONE THEN
LEAVE read_loop;
END IF;
--插入数据库数据
INSERT INTO iwebshop_goods_mark(ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE) VALUES(ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE);
END LOOP;
END;
使用函数说明:
SUBSTRING:
格式:
substring(str, pos)
substring(str, pos, length)
说明:
substring(被截取字段,从第几位开始截取)
substring(被截取字段,从第几位开始截取,截取长度)
REPLACE:
格式:
replace(object,search,replace)
说明:
用replace替换object的search
CHAR_LENGTH:
格式:
CHAR_LENGTH(str)
说明:
返回值为字符串str 的长度,长度的单位为字符。
LTRIM:
格式:
LTRIM(str)
说明:
去除字符串左边的空格
RTRIM:
格式:
RTRIM(str)
说明:
去除字符串右边的空格
CREATE TABLE `iwebshop_goods_mark` (
`ITEMS` varchar(50) NOT NULL COMMENT '品目',
`BRAND` varchar(255) NOT NULL COMMENT '品牌',
`MODEL` varchar(255) NOT NULL COMMENT '产品型号',
`QUOTATION_PRICE` float(10,2) NOT NULL COMMENT '政采报价',
`MARKEI_SKU` int(11) NOT NULL COMMENT '电商SKU',
`MARKET_PRICE` float(10,2) NOT NULL COMMENT '电商价格',
) ENGINE=InnoDB DEFAULT CHARSET=utf8
处理的存储过程
CREATE PROCEDURE SPLIT()
BEGIN
--品目:ITEMS
DECLARE ITEMS varchar(50);
--品牌:BRAND
DECLARE BRAND varchar(255);
--产品型号:MODEL
DECLARE MODEL varchar(255);
--政采报价:QUOTATION_PRICE
DECLARE QUOTATION_PRICE float(10,2);
--电商SKU:MARKEI_SKU
DECLARE MARKEI_SKU int(11);
--电商价格:MARKET_PRICE
DECLARE MARKET_PRICE float(10,2);
--状态属性
DECLARE DONE VARCHAR(10);
DECLARE BRANDCURSOR CURSOR FOR SELECT
b.`name` as ITEMS,
c.`name` as BRAND,
SUBSTRING(REPLACE(a.name,' ',''),CHAR_LENGTH(LTRIM(RTRIM(c.name))) + 1) AS MODEL,
a.market_price AS QUOTATION_PRICE,
a.id AS MARKEI_SKU,
(a.market_price * 0.98) AS MARKET_PRICE
FROM
iwebshop_goods a,
iwebshop_category b,
iwebshop_brand c
WHERE
a.model_id = b.model_id
AND
a.brand_id = c.id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE;
OPEN BRANDCURSOR;
read_loop: LOOP
-- 提取游标里的数据
FETCH BRANDCURSOR INTO ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE;
-- 声明结束
IF DONE THEN
LEAVE read_loop;
END IF;
--插入数据库数据
INSERT INTO iwebshop_goods_mark(ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE) VALUES(ITEMS, BRAND, MODEL, QUOTATION_PRICE, MARKEI_SKU, MARKET_PRICE);
END LOOP;
END;