一、将txt文档内容入mysql(一定要注意编码问题和换行符(\r)问题)
LOAD DATA LOCAL INFILE 'D:/a.txt' INTO TABLE db.`test` FIELDS TERMINATED BY '\t';
二、自动补全excel表中的日期,其他字段默认为0或是其他
源数据:
目标结果数据:
1、先将excel中数据copy至txt,之后通过mysql的load命令将数据存储至mysql,采用左连接或右连接的方式拼接
CREATE TABLE `test` (
`date` varchar(30) DEFAULT NULL,
`country` varchar(100) DEFAULT NULL,
`nopin` int(11) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`pin_rate` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `test2` (
`date` VARCHAR(30) DEFAULT NULL,
`country` VARCHAR(100) DEFAULT NULL,
`nopin` INT(11) DEFAULT NULL,
`count` INT(11) DEFAULT NULL,
`pin_rate` DOUBLE DEFAULT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8
SELECT
x.date,
x.country,
x.nopin,
x.count,
x.pin_rate
FROM
(SELECT
STR_TO_DATE(b.date, '%Y/%m/%d') DATE,
IF(a.country IS NULL, 'ko', a.country) country,
IF(a.nopin IS NULL, 0, a.nopin) nopin,
IF(a.count IS NULL, 0, a.count) COUNT,
IF(a.pin_rate IS NULL, 0, a.pin_rate) pin_rate,
b.adt1,
b.adt2
FROM
(SELECT
DATE,
country,
nopin,
COUNT,
pin_rate
FROM
test
WHERE country = 'ko') a
RIGHT JOIN
(SELECT
DATE,
(SELECT
MIN(STR_TO_DATE(DATE, '%Y/%m/%d'))
FROM
test
WHERE country = 'ko') AS adt1,
(SELECT
MAX(STR_TO_DATE(DATE, '%Y/%m/%d'))
FROM
test
WHERE country = 'ko') AS adt2
FROM
test2) b
ON a.date = b.date) X
WHERE x.date BETWEEN x.adt1
AND x.adt2