Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图使用mysql排除某些特定的_Mysql - Fatal编程技术网

试图使用mysql排除某些特定的

试图使用mysql排除某些特定的,mysql,Mysql,我是mySQL的新手。我有一个表,它应该在标记为“b”或“s”的字段之间相互排斥,但它们不是。tn列中的某些字段有“b”,另一个字段有“s”,但它们都有相同的“tn”。这是一个数据问题,我正在等待有人来解决。同时,我需要从我的“b”查询中排除任何“tn”也在类似的“s”查询中的项。我的查询中只有“b”个,如何与“s”个进行比较并排除交叉错误?另外,我想排除任何“tn”计数超过2的“b”值。我知道他们需要修复数据,但当我等待数月的时间时,我想先获得一组数据,这是干净的。我需要返回的行包括显示的所有

我是mySQL的新手。我有一个表,它应该在标记为“b”或“s”的字段之间相互排斥,但它们不是。tn列中的某些字段有“b”,另一个字段有“s”,但它们都有相同的“tn”。这是一个数据问题,我正在等待有人来解决。同时,我需要从我的“b”查询中排除任何“tn”也在类似的“s”查询中的项。我的查询中只有“b”个,如何与“s”个进行比较并排除交叉错误?另外,我想排除任何“tn”计数超过2的“b”值。我知道他们需要修复数据,但当我等待数月的时间时,我想先获得一组数据,这是干净的。我需要返回的行包括显示的所有列

表hardware_数据如下所示:

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。