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

如何根据section字段值将dr_machine表数据插入到dr_tv_table表?

解决方案:按Section分类迁移数据到目标表

需求明确

从dr_machine表提取sawing_type,根据section值(L01/L02/L03)插入到dr_tv_table对应的列中。

源表与目标表结构回顾

源表 dr_machine

mIDCodesawing_typesection
10058ZigzagL01
20065ZigzagL01
30089PullerL02
41124Single NeedleL03
58796Double NeedleL04

目标表 dr_tv_table

sIDL01L02L03

正确实现方式

方式1:按Section汇总插入(同一Section的多个值合并)

如果需要把同一Section的所有sawing_type合并后插入对应列,用GROUP_CONCAT函数:

INSERT INTO dr_tv_table (L01, L02, L03)
SELECT
  GROUP_CONCAT(CASE WHEN section = 'L01' THEN sawing_type END SEPARATOR ', ') AS L01,
  GROUP_CONCAT(CASE WHEN section = 'L02' THEN sawing_type END SEPARATOR ', ') AS L02,
  GROUP_CONCAT(CASE WHEN section = 'L03' THEN sawing_type END SEPARATOR ', ') AS L03
FROM dr_machine;

执行后目标表生成一行数据:

sIDL01L02L03
1Zigzag, ZigzagPullerSingle Needle

方式2:按机器记录逐个插入(每条机器对应一行,仅对应Section列填值)

如果需要将每个机器的sawing_type插入到对应Section列,其他列留空:

INSERT INTO dr_tv_table (L01, L02, L03)
SELECT
  CASE WHEN section = 'L01' THEN sawing_type END AS L01,
  CASE WHEN section = 'L02' THEN sawing_type END AS L02,
  CASE WHEN section = 'L03' THEN sawing_type END AS L03
FROM dr_machine
WHERE section IN ('L01', 'L02', 'L03'); -- 过滤目标表没有的L04数据

执行后目标表生成4行数据:

sIDL01L02L03
1Zigzag
2Zigzag
3Puller
4Single Needle

修正存储过程(若必须用存储过程实现)

如果一定要用存储过程完成方式2的逻辑,可参考:

DELIMITER $$
CREATE PROCEDURE insert_into_tv_table()
BEGIN
  -- 插入L01分组的数据
  INSERT INTO dr_tv_table (L01)
  SELECT sawing_type FROM dr_machine WHERE section = 'L01';
  
  -- 插入L02分组的数据
  INSERT INTO dr_tv_table (L02)
  SELECT sawing_type FROM dr_machine WHERE section = 'L02';
  
  -- 插入L03分组的数据
  INSERT INTO dr_tv_table (L03)
  SELECT sawing_type FROM dr_machine WHERE section = 'L03';
END$$
DELIMITER ;

调用存储过程:

CALL insert_into_tv_table();

关键说明

  • 避免用循环拼接列名,MySQL中直接使用CASE语句或聚合函数更高效
  • 目标表sID如果是自增主键,插入时无需手动赋值,数据库会自动生成
  • 若需处理重复数据,可在INSERT前执行DELETE FROM dr_tv_table;清空表,或使用INSERT ... ON DUPLICATE KEY UPDATE逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:07:58