试图使用mysql排除某些特定的
我是mySQL的新手。我有一个表,它应该在标记为“b”或“s”的字段之间相互排斥,但它们不是。tn列中的某些字段有“b”,另一个字段有“s”,但它们都有相同的“tn”。这是一个数据问题,我正在等待有人来解决。同时,我需要从我的“b”查询中排除任何“tn”也在类似的“s”查询中的项。我的查询中只有“b”个,如何与“s”个进行比较并排除交叉错误?另外,我想排除任何“tn”计数超过2的“b”值。我知道他们需要修复数据,但当我等待数月的时间时,我想先获得一组数据,这是干净的。我需要返回的行包括显示的所有列 表hardware_数据如下所示:试图使用mysql排除某些特定的,mysql,Mysql,我是mySQL的新手。我有一个表,它应该在标记为“b”或“s”的字段之间相互排斥,但它们不是。tn列中的某些字段有“b”,另一个字段有“s”,但它们都有相同的“tn”。这是一个数据问题,我正在等待有人来解决。同时,我需要从我的“b”查询中排除任何“tn”也在类似的“s”查询中的项。我的查询中只有“b”个,如何与“s”个进行比较并排除交叉错误?另外,我想排除任何“tn”计数超过2的“b”值。我知道他们需要修复数据,但当我等待数月的时间时,我想先获得一组数据,这是干净的。我需要返回的行包括显示的所有
tn hardware_item shelf slot port type model
12345678 abcdefg 1 1 1 b Model1
23456789 bcdefgh 1 2 3 b Model1
23456789 bcdefgh 1 2 3 s Model1
34567890 cdefghi 1 1 4 s Model1
12345678 abcdefg 1 1 4 b Model1
12345678 abcdefg 1 1 3 b Model1
45678901 defghij 1 1 2 b Model1
45678901 defghij 1 1 3 b Model1
因此,在上述数据中,我将使用以下查询:
select hardware_item, tn, shelf, slot, port
from accessInventory.hardware_data
WHERE model= 'Model1'
AND type = 'b'
AND CHAR_LENGTH(tn)>3
AND tn*1 = tn
LIMIT 100000;
它返回这个数据集
tn hardware_item shelf slot port type model
45678901 defghij 1 1 2 b Model1
45678901 defghij 1 1 3 b Model1
23456789 bcdefgh 1 2 3 b Model1
12345678 abcdefg 1 1 4 b Model1
12345678 abcdefg 1 1 3 b Model1
12345678 abcdefg 1 1 1 b Model1
但我希望它排除那些重复计数“tn”超过2的,比如12345678,以及那些与“s”类交叉的,比如23456789。我甚至不知道从何处开始使用交叉点,我的计数超过3排除不起作用,因为它比较的是返回的整行,而不仅仅是“tn”。任何帮助都将不胜感激
当然,我已经在谷歌上搜索过了,但是我没有找到任何我需要的排除方法,而且我也没有找到排除公共行项目数超过某个值的项目的具体情况
注意,不能使用“分组依据”,因为在“b”类中有2个tn的匹配是有效的。我发现这有帮助,“它返回此数据集…”-我不相信。。使用
按tn分组
时,您不应该在tn
列中获得任何重复项。是的,它会。。。这是我返回的一段数据,显示了重复的tn。我认为这是因为托架/插槽/端口被视为重复类别。硬件tn机架插槽端口c CITRFLBLCKDC 105100 1 2 21 2 CITRFLLKM1DC 105101 1 21 2 CITRFLSTORDC 105101 2 1 2 CITRFLBASRDC 105101 2 2 2 2实际上,我认为你是对的,因为我必须对tn进行治疗,所以我不会将不应该在网上发布的内容发布到网上。我又看了一遍。我不应该使用Group By,因为在“b”类中有两个相同的tn是有效的。@Zyigh-我不能使用Group By,因为在“b”类中有两个相同的tn是有效的。我从查询中删除了它。我仍在尝试去除任何tn>3的tn,以及我的“b”查询中也属于“s”类的tn。