先上个表结构吧:

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. 2024-06-05:用go语言,给定三个正整数 n、x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况。 城市中存在一条额外的街道连接房屋 x 和房屋 y。 需要计算对于每个街道数(

    2024-06-05:用go语言,给定三个正整数 n.x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况. 城市中存在一条额外的街道连接房屋 x 和房屋 y. 需要计算对于每个街道数( ...

  2. ABC317题解报告

    我直接从第三题开始讲了. T3 把数组 \(A\) 从大到小排序. 然后从前往后把前 \(q\) 个数加起来,然后判断这 \(q\) 个数的和与 \(d\) 的大小关系,如果大了就变成 \(d\). ...

  3. 微信实名认证申请单报错:请求中含有未在API文档中定义的参数

    完整错误: {"code":"PARAM_ERROR","detail":{"location":null," ...

  4. java怎样把两个list里边相同的数据取出

    1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class I { 5 6 public static void m ...

  5. leetcode_2-两数相加_javascript

    题目 2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新 ...

  6. css 让页面变灰色

    html { -webkit-filter: grayscale(1); }-webkit-filter(滤镜)有十种效果,分别是:     // grayscale 灰度     // sepia ...

  7. FreeRTOS简单内核实现3 任务管理

    0.思考与回答 0.1.思考一 对于 Cotex-M4 内核的 MCU 在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈? 会自动入栈的寄存器如下 R0 - R3:通用寄存器 R12:通用寄 ...

  8. PackageScanner

    package com.cmb.cox.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;im ...

  9. maven项目创建默认目录结构

    maven项目创建默认目录结构命令 项目文件夹未创建情况下 mvn \ archetype:generate \ -DgroupId=com.lits.parent \ -DartifactId=my ...

  10. python sweetviz_数据分析及解决报告图表中文乱码

    python sweetviz_数据分析 python 做数据分析,传入数据进去,就可以使用python现有的插件,进行数据分析,生成数据分析的报表,可以将复杂的数据,通过图表的形式,清晰将数据展示出 ...