MYSQL多次将值与同一列中的值进行匹配
我有一个名为Team的表,其中表包含3列(ID、Team、Task)。它的数据类型是MYSQL多次将值与同一列中的值进行匹配,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我有一个名为Team的表,其中表包含3列(ID、Team、Task)。它的数据类型是(INT,VARCHAR(255),INT)。下面是一个示例表,我想在其中对列team执行查询 ----------------------------- |ID| Team |Task | ----------------------------- |1 |team1,team2,team5 |23 | |2 |team3,team2 |34
(INT,VARCHAR(255),INT)
。下面是一个示例表,我想在其中对列team执行查询
-----------------------------
|ID| Team |Task |
-----------------------------
|1 |team1,team2,team5 |23 |
|2 |team3,team2 |34 |
|3 |team1,team5,team3 |45 |
|4 |team2 |2 |
|5 |team1,team3 |65 |
|6 |team2,team5 |4 |
|7 |team1 |34 |
|8 |team5 |67 |
-----------------------------
我的问题是,我想检查列团队中的值是否是同一列团队中的任何值的子集(它不应该检查列团队中自己的值),如果该值为真,那么我想删除具有该值的行。它应该为列团队的所有值运行
-----------------------------
|ID| Team |Task |
-----------------------------
|1 |team1,team2,team5 |23 |
|2 |team3,team2 |34 |
|3 |team1,team5,team3 |45 |
|4 |team2 |2 |
|5 |team1,team3 |65 |
|6 |team2,team5 |4 |
|7 |team1 |34 |
|8 |team5 |67 |
-----------------------------
输出表如下所示
---------------------------
|ID| Team |Task|
---------------------------
|1 |team1,team2,team5 |23 |
|2 |team3,team2 |34 |
|3 |team1,team5,team3 |45 |
----------------------------
正如您在team5中所看到的,{team2,team5},{team1,team5,team3}和{team1,team2,team5}
,与team1,{team2,team5},{team1,team3},team2}的子集相同,它们也将被删除,因为它们是team列中某个值的子集
如果有其他方法可以做到这一点,请告诉我。在初始表中,我使用了group_concat函数来获取与特定ID相关的所有值。Simple。看见normalization@Strawberry:请引导me@Strawberry:如果我以某种方式进行规范化,那么我将再次达到应用group_concat()的相同情况。这就是为什么我为特定ID合并了所有团队值,之后我必须对此执行这样的子集操作。在我看来,MySQL中的组_CONCAT是解决方案(的一部分)没有问题。所以,我建议您重新开始,使用“初始表”,不管它是什么。