最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

数据导入到MySQL

运维笔记admin10浏览0评论

数据导入到MySQL

数据导入到MySQL

我有以下问题:

我解析了一个CSV文件,然后数据应该自动上传到MySQL数据库。现在的问题是我的数据类型为“ varchar”或“ decimal”。在stackoverflow上,我已经获得帮助,如果数据类型为“十进制”,则记录中仅存在数字。

记录(记录)如下所示:


[ { examplename1: 'example1',
    examplename2: 'example2',
    examplename3: 'example3',
    examplename4: 'example4',
    examplename5: 'example5',
    examplename6: 'example6',
    examplename7: 'example7',
    examplename8: 'example8',
    examplename9: 'example9',
    examplename10: 'example10',
    examplename11: 'example11',
    examplename12: 'example12',
    Diff_In_Hauswaehrung: -103600, 
    examplename14: 'example14',
    Marktwert_NPV: -111146.16,
    examplename16: 'example16' },
  { examplename1: 'example1',
    examplename2: 'example2',
    examplename3: 'example3',
    examplename4: 'example4',
    examplename5: 'example5',
    examplename6: 'example6',
    examplename7: 'example7',
    examplename8: 'example8',
    examplename9: 'example9',
    examplename10: 'example10',
    examplename11: 'example11',
    examplename12: 'example12',
    Diff_In_Hauswaehrung: 53851.33, 
    examplename14: 'example14',
    Marktwert_NPV: 47328.16,
    examplename16: 'example16' } ]


您可以在“ Diff_In_Hauswaehrung”和“ Marktwert_NPV”中看到一个没有''的数字。

这些在控制台中也以黄色显示。

现在,我想检查是否有这样的数字,或者只有一个带''的字符串,如果有数字,那么我不希望在SQL查询中的该值周围出现“”。

现在我有一个forEach循环,其中所有值都用“”上传...但是没有区别... keysY只是记录的键。


 rec.forEach(entry => {

                    values = `"${entry[keysY[0]]}"`

                    for (var i = 1; i < keysY.length; i++) {
                        values += `,"${entry[keysY[i]]}"`
                    }

                    //console.log(values)

                    var sql = `INSERT INTO ${richtigername} (${namen}) VALUES (${values})`;

                    connection.query(sql, [values], (error, response) => {

                    console.log(error || response);

希望您能帮助我:)

最诚挚的问候,

弗雷德里克

回答如下:

要检查值是否包含有效数字,请将其强制转换为Number。如果值是数字,则该转换的结果将是该类型的数字。然后使用isNaN检查结果是否为(不是)数字。如果结果为假,则为数字。为了简化此操作,请预先添加!以否定最终结果。

这里是一个例子:

!isNaN(Number("12"))
// returns true (valid number)

!isNaN(Number("1x2"))
// returns false (no valid number)

!isNaN(Number(12))
// returns true (valid number)

这些是字符串“ 12”的步骤:

!isNaN(Number("12")); // returns true

Number("12"); // returns 12
isNaN(12); // returns false
!false; // returns true

所以您的情况可能是

for (var i = 1; i < keysY.length; i++) {
    if(!isNaN(Number(${entry[keysY[i]]}) {
        // it's a number, no quotes:
        values += `,${entry[keysY[i]]}`;
    } else {
        // it's not a number (NaN) add quotes:
        values += `,"${entry[keysY[i]]}"`;
    }
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论