You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两段Node.js代码实现按客户类型筛选导出指定CSV数据

Node.js操作MySQL代码合并方案

核心逻辑

  • 复用同一个数据库连接,消除重复初始化连接的冗余代码
  • 直接在字段筛选SQL中添加WHERE条件,一步获取Type1类型的客户数据,避免全表查询后再过滤的性能损耗
  • 保留原有的客户类型统计逻辑,按异步执行顺序依次执行两个查询,全部完成后关闭连接

合并后完整代码

var mysql = require('mysql');
// 复用统一的数据库连接配置
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "private",
    // 若你实际存储客户表的库是icedcoffee,可直接改成database: "icedcoffee"
    database: "private"
});

con.connect(function(err) {
  if (err) throw err;
  // 第一个查询:直接筛选Type1类型的指定列客户数据
  con.query("SELECT customernumber, type, gender, name, streetapt, city, state, zip, phone, discount, outstandingbalance FROM customers WHERE type = 'Type1'", function (err, type1Customers, fields) {
    if (err) throw err;
    console.log("===== Type1类型客户数据 =====");
    console.log(type1Customers);

    // 第二个查询:按类型统计客户数量,若你的客户表在icedcoffee库下,保留`icedcoffee.customers`即可
    con.query('SELECT type, COUNT(type) as count FROM customers group by type', function(err, typeStats, fields) {
      if (err) throw err;
      console.log("===== 各类型客户统计数据 =====");
      // 按类型输出统计结果,避免原代码硬取下标可能出现的索引错位问题
      typeStats.forEach(stat => {
        console.log(`类型${stat.type}的客户数:${stat.count}`);
      });
      // 所有查询完成后关闭连接
      con.end();
    });
  });
});

改动说明

  • 统一了数据库连接配置,全程仅创建1次连接,减少不必要的资源开销
  • 原字段查询SQL新增WHERE type = 'Type1'过滤条件,直接返回你需要的目标客户数据,无需二次筛选
  • 优化了类型统计结果的输出逻辑,不再硬取数组下标,避免类型排序变化导致的输出错误
  • 统一在所有查询执行完成后关闭数据库连接,避免连接泄漏

内容的提问来源于stack exchange,提问作者wavedbabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 04:36:01