问题:
用for循环插入的话会导致插入顺序不一样,比如下图:
查找资料 :
查看了官方文档人家是这么写的,使用.query有三种方式:
1.最简单的 .query()形式是 .query(sqlString, callback),第一个参数是一条SQL字符串,第二个参数是回调:
connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
2.query()形式是 .query(sqlString, values, callback),带有值的占位符 (查看转义查询值):
connection.query('SELECT * FROM `books` WHERE `author` = ?', ['David'], function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
3.query()形式是 .query(options, callback),在查询时带有大量的高级可选项
connection.query({
sql: 'SELECT * FROM `books` WHERE `author` = ?',
timeout: 40000, // 40s
values: ['David']
}, function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});
解决 :
部分代码:
// 数据插入
/* 我的data的参数是这样的是一个二维数组
[
[1,2,3,4],
[1,2,3,5555],
[1,2,3,5555666]
]
下面还是得加上[data] 变成三维数组
*/
let DataInsert = async (data)=>{
db.query('insert into DomesticOutbreak values ?',[data],(err,result)=>{
if(err) return console.log(err);
console.log(`数据插入成功~`);
});
};
全部代码:
// 爬取国内数据疫情数据汇总到DomesticOutbreak表中
exports.CraDomesticOutbreak = async function(){
// 清空当前插入的表
let task = async ()=>{
db.query('DELETE FROM DomesticOutbreak',(err,result)=>{
if(err) return console.log(err);
console.log(`清空成功~`);
});
};
// 数据处理
let DataFilter = async (data)=>{
let arr = [] ;
data.map(i=>{
let aa = [];
for(let [keys,values] of Object.entries(i)){
aa.push(values);
}
arr.push(aa);
});
return arr;
};
// 数据插入
let DataInsert = async (data)=>{
db.query('insert into DomesticOutbreak values ?',[data],(err,result)=>{
if(err) return console.log(err);
console.log(`数据插入成功~`);
});
};
await Operate_puppeteer.DomesticOutbreak().then(async (reject,resolve)=>{
await task();
await DataInsert(await DataFilter(reject));
});
};