先上个表结构吧:

CREATE TABLE `tm_part_replace` (
`ITEM_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`OWNER_CODE` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-1' COMMENT '经销商代码',
`PART_NO` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '配件代码(原始)',
`OPTION_PART_NO` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '替换件代码',
`SHIFT_DIRECT` int(8) DEFAULT NULL COMMENT '替换方向 10041001单向 10041002双向',
`IS_DELETED` tinyint(4) DEFAULT NULL COMMENT '逻辑删除 0否 1是',
`CREATE_AT` datetime DEFAULT NULL COMMENT '创建时间',
`CREATE_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
`UPDATE_AT` datetime DEFAULT NULL COMMENT '更新时间',
`UPDATE_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
`RECORD_VERSION` int(11) DEFAULT NULL COMMENT '乐观锁记录',
PRIMARY KEY (`ITEM_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='配件替换件表(确认)';

配件存在着一些替换关系

就是配件B可以代替配件A去使用,在需要使用配件A的情况没有配件A,可以使用配件B来代替

这是一种情况,还有一种情况是,配件A可以替换配件B,配件B也可以替换配件A使用

那这种替换是双向的,所以就是两种替换情况,单向的和双向的

零件主表存储了各种零件记录,只取零件代码作为关键字段存储

替换件和配件存储都是主表的零件代码字段来构成替换关系。

如果是单向,就只存储一条记录(A -> B)

如果是双向,就要存储两条记录,表示B也是A的替换件(A -> B + B -> A)

单向10041001

双向10041002

字典数据表示

导入的数据:

样本数据用例:

mysql> SELECT * FROM tm_part_replace;
+---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
| ITEM_ID | OWNER_CODE | PART_NO | OPTION_PART_NO | SHIFT_DIRECT | IS_DELETED | CREATE_AT | CREATE_BY | UPDATE_AT | UPDATE_BY | RECORD_VERSION |
+---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
| 1 | -1 | TEST-PART-NO-06 | TEST-PART-NO-04 | 10041001 | NULL | NULL | NULL | NULL | NULL | NULL |
| 2 | -1 | TEST-PART-NO-06 | TEST-PART-NO-03 | 10041002 | NULL | NULL | NULL | NULL | NULL | NULL |
| 3 | -1 | TEST-PART-NO-03 | TEST-PART-NO-06 | 10041002 | NULL | NULL | NULL | NULL | NULL | NULL |
| 4 | -1 | TEST-PART-NO-05 | TEST-PART-NO-04 | 10041001 | NULL | NULL | NULL | NULL | NULL | NULL |
| 5 | -1 | TEST-PART-NO-03 | TEST-PART-NO-04 | 10041002 | NULL | NULL | NULL | NULL | NULL | NULL |
| 6 | -1 | TEST-PART-NO-04 | TEST-PART-NO-03 | 10041002 | NULL | NULL | NULL | NULL | NULL | NULL |
+---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
6 rows in set (0.03 sec)

【MySQL】替换件需求的更多相关文章

  1. freeswitch 使用mysql替换默认的sqlite

    转自 80000hz.com freeswitch 使用mysql替换默认的sqlite No Reply , Posted in 默认分类 on January 14, 2014 目标使用mysql ...

  2. Mysql笔记之 -- replace()实现mysql 替换字符串

    mysql 替换函数replace()实现mysql 替换字符串 mysql 替换字符串的实现方法:  mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数 ...

  3. mysql替换字段里数据内容部分字符串(亦可用于增加字段中的内容)

    mysql替换表的字段里面内容,如例子: mysql> select host,user from user  where user='testuser'; +----------------- ...

  4. mysql 替换函数replace()实现mysql 替换字符串

    mysql 替换字符串的实现方法:mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便,mysql 替换函数replace()Upd ...

  5. Hive(2)-Hive的安装,使用Mysql替换derby,以及一丢丢基本的HQL

    一. Hive下载 1. Hive官网地址 http://hive.apache.org/ 2. 文档查看地址 https://cwiki.apache.org/confluence/display/ ...

  6. mysql 替换函数replace()实现mysql替换指定字段中的字符串

    mysql 替换字符串的实现方法: mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便. mysql 替换函数replace() ...

  7. 单独批次性任务采用MySQL定时器解决需求

    有时候我们在开发的时候会遇到一些需求是在某个固定的时间段实现某些特殊功能,只做一次或者有规律的每分钟一次每小时一次,那么这个时候我们可以启用MySQL的定时器来帮忙解决该问题. 比如,有一个场景是要求 ...

  8. MySQL 替换部分电话号码为000

    要做敏感信息剔除,要求又不能全换成同一个号码影响测试,想了几个方法,最终采用替换部分电话号码为000来做到敏感信息覆盖. mysql>update phone setb=replace(b,su ...

  9. mysql 替换

    最近贷后好烦,经常让我修改短信模板内容,以前一两个模板手动就直接改了.随着短信模板的增多,手动一个个改内容就不行了. 今天又让我把短信模板中所有的的电话号码修改一下:如:010-44444444改为0 ...

  10. mysql替换制定的内容的 类似正则表达式的功能

    content= 'asnfojassozxpdsgdspdps神龙架谁骄傲的骄傲搜ID飞机扫' SELECT content FROM test WHERE id =1 吧zx替换成ZZZZ UPD ...

随机推荐

  1. uniapp colorui的使用

    1.首先我们在Hbuilder x中新建一个uniapp的项目,如下图所示,选择 colorUI项目 2.copy 项目文件夹下的colorUI文件夹到你的项目中去,如下图所示 3.打开根目录下的Ap ...

  2. 剑指Offer-52.正则表达式匹配(C++/Java)

    题目: 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式. ...

  3. asp.net core mvc 使用quartz

    参照了:https://www.cnblogs.com/dangzhensheng/p/10496278.html 1.新建任务类ReportJob.cs,这个类里就是具体任务了. using Qua ...

  4. MyBatis的逆向工程详细步骤操作

    1. MyBatis的逆向工程详细步骤操作 @ 目录 1. MyBatis的逆向工程详细步骤操作 2. 逆向工程配置与生成 2.1 MyBatis3Simple:基础版,只有基本的增删改查 2.1.1 ...

  5. SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?

    本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...

  6. ESP8266串口WiFi模块 - WiFi杀手

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` ESP8266串口WiFi模块 - WiFi杀手 日期:2 ...

  7. 日志之log4j2和springboot

    log4j2比logback好用. 现在之所有以spring采用logback,根据我个人的理解应该是某种非常特殊的理由.否则log4j2的性能比logback更好,且异步性能极好! 异步日志是log ...

  8. 高通参考设计中MTP与QRD

    高通参考设计中MTP与QRD 背景 之前在调试设备树的时候,看到设备树带了一个qrd的后缀,一直没搞清楚.上网找资料也好像不是我想要的. 今天查阅lk侧的代码,发现了HW_PLATFORM_HRD这个 ...

  9. 下载 Linux 内核的脚本

    介绍 在 类UNIX 环境下运行比较好(基于wget) 包括了 2.6 ~ 4.x 内核的地址. 5.x 因为 还在更新因此不做记录. 脚本下载地址: https://files.cnblogs.co ...

  10. 莫名其妙的bug——Segmentation fault

    vscode出现Segmentation fault异常,但是没有问题报错(如上) 先说原因:cout << dp[m]; m没有输入,一个空定义(空指针) 难受啊,有一次cf因为这个bu ...