先上个表结构吧:

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. 一款WPF的精简版MVVM框架——stylet框架的初体验(包括MVVM绑定、依赖注入等操作)

    今天偶然知道一款叫做stylet的MVVM框架,挺小巧的,特别是它的命令触发方式,简单粗暴,让人感觉很巴适,现在我做一个简单的demo来顺便来分享给大家. 本地创建一个WPF项目,此处我使用.NET ...

  2. LeetCode 39. Combination Sum 组合总和 (C++/Java)

    题目: Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), ...

  3. ABC351

    我多久没更新这个系列了啊 E 把格子分成两类,每一类之间的坐标均可互相走到. 然后将这里面的点都旋转 \(45\) 度,于是这个问题就被转换成曼哈顿距离的问题了. 我们可以把 \(x\) 和 \(y\ ...

  4. FlashDuty Changelog 2023-12-18 | 值班管理、服务日历、自定义操作和邮件集成

    FlashDuty:一站式告警响应平台,前往此地址免费体验! 值班管理 UI 交互优化 [个人日程]从头像下拉菜单调整到值班列表页面,快速查看个人值班日程 [值班列表]支持原地预览最近一周值班情况,包 ...

  5. Vue学习:16.组件通信

    组件通信就是指组件之间的数据传递.由于组件的数据是独立的,无法直接访问其他组件的数据,所以想要使用其他组件数据必须通过 组件通信! 在Vue.js中,组件之间的通信可以通过多种方式实现,包括 prop ...

  6. 基于 Swagger 增强 UI FytApi.MUI

    FytApi.MUI 介绍 基于swagger的轻量级,注入化的api-ui组件 支持netcore 3.1/5.0/6.0 特点 零浸入.轻量.简单.好看.好用 可配置权限认证以及Header,支持 ...

  7. Flink状态(一)

    key状态和算子状态 key状态 key状态总是与key有关,只能被用于keyedStream类型的函数与算子.你可以认为key状态是一种被分区的算子状态,每一个key有一个状态分区.每一个key状态 ...

  8. Netty(二)线程模型

    1. Netty概述 虽然Java已经提供了NIO,但原生NIO仍存在部分问题: NIO的类库和API繁杂,使用麻烦.需要熟练掌握Selector.ServerSocketChannel.Socket ...

  9. OpenBMB × Hugging Face × THUNLP,联袂献上经典大模型课

    这个夏天,THUNLP 携手 Hugging Face 和 OpenBMB,推出 大模型公开课第二季.在大模型公开课第二季中,将有全球知名开源社区 OpenBMB X Hugging Face 梦幻联 ...

  10. npm install及其目录结构

    npm install 安装包及其依赖.npm install: 默认情况下,安装package.json文件中列出的所有依赖.加-P或--production后,只安装dependencies列出的 ...