先上个表结构吧:

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. Qt-数据库操作MySql

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=87 说明:本文简单说明在Qt中操作数据库,用MySql数据库进行试验. Qt 提供了 ...

  2. Java中的包(Package)

    # 包(Package) **为方便管理类(按照不同的功能管理类),解决同名问题的发生** - 使用`package关键字`修饰包 - **类名(全类名)=包名(地址)+类名简称** ```java ...

  3. js整数类型

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  4. Kubernetes监控手册06-监控APIServer

    写在前面 如果是用的公有云托管的 Kubernetes 集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心 APIServer 的运维.个人也推荐使用云厂商这个服务,毕竟 K ...

  5. CM 停用 Parcel 异常

    在将Doris集成到CM时,第一次打的包存在问题,想更新下,停用.删除Parcel时出现了问题卡住了,一直显示75%.无奈换了名称和版本,分配.激活,然后又卡在了75%,点开后,发现是同一台机器.其a ...

  6. ISO pod 使用

    pod 安装 相关依赖包 新建podfile 文件 pod init 编辑podfile文件添加第三方库 // pod '第三方依赖库名', '版本号' pod 'SDWebImageSwiftUI' ...

  7. FreeRTOS简单内核实现7 阻塞链表

    0.思考与回答 0.1.思考一 如何处理进入阻塞状态的任务? 为了让 RTOS 支持多优先级,我们创建了多个就绪链表(数组形式),用每一个就绪链表表示一个优先级,对于阻塞状态的任务显然要从就绪链表中移 ...

  8. gcc系列工具 介绍

    编译器相关知识学习 GNU GCC简介 GNU GCC是一套面向嵌入式领域的交叉编译工具,支持多种编程语言.多种优化选项并且能够支持分步编译.支持多种反汇编方式.支持多种调试信息格式,目前支持X86. ...

  9. 如何让其他模型也能在SemanticKernel中调用本地函数

    在SemanticKernel的入门例子中: // Import packages using Microsoft.SemanticKernel; using Microsoft.SemanticKe ...

  10. 【Playwright+Python】系列教程(四)Pytest 插件在Playwright中的使用

    一.命令行使用详解 使用Pytest插件在Playwright 中来编写端到端的测试. 1.命令行执行测试 pytest --browser webkit --headed 2.使用 pytest.i ...