mysql 如何计算列表中的 class 个 IP 和 return 具有给定计数的 IP
mysql how to count class A IPs from a list and return those with a given count
我有 table 个 class B IP。
示例 table:
1.1
1.2
1.3
14.2
14.4
14.57
242.10
每个classA的总记录是随机的,有的少,有的多。
我需要确定 table 中有多少 class As 有 256 个条目(意味着整个 class A 包含在 table 中)。
所以我需要 select 每个 class A in the table like 1.%, 2.%, etc
然后计算该特定 class A
存在多少条记录
然后是 return 个计数为 256 的条目。
示例输出显示 Class A 1、14 和 242 有 256 个条目:
1
14
242
提前致谢。
我认为您可以使用此问题函数用点拆分列数据:
split-value-from-one-field-to-two
SPLIT_STR(class_a, '.', 1) as class_a
或者将第一个参数 (A) 保存在单独的列中,然后在您的查询中使用该列。
然后使用按 'A' class 列分组的计数查询,如下所示:
SELECT *, COUNT(A) AS cnt_a FROM class_a
GROUP BY COUNT(A)
WHERE COUNT(A) = 256
此查询可能无法很好地执行,因为它无法利用任何现有索引,但它应该可以为您解决问题。在这里,您从原始 IP 地址字段(此处假定名称为 'ip')创建一个 class_a 字段,计算每个 class_a 字段的不同 class b 值的数量值,然后只返回 class b 值的计数 = 256.
的情况
SELECT
SUBSTRING_INDEX(ip, '.', 1) AS class_a,
COUNT(DISTINCT ip) as class_b_count
FROM table
GROUP BY class_a
HAVING class_b_count = 256
即使您不在基础 ip 地址字段上强制使用唯一值,这也会起作用。如果您已经有了这个约束,您可以在 COUNT()
函数
中删除 DISTINCT
关键字
不过,我建议您可以将您的 IP 地址拆分成多个部分,如果这是您要定期 运行 的查询,以便您可以利用索引。
我有 table 个 class B IP。
示例 table:
1.1
1.2
1.3
14.2
14.4
14.57
242.10
每个classA的总记录是随机的,有的少,有的多。
我需要确定 table 中有多少 class As 有 256 个条目(意味着整个 class A 包含在 table 中)。
所以我需要 select 每个 class A in the table like 1.%, 2.%, etc
然后计算该特定 class A
存在多少条记录
然后是 return 个计数为 256 的条目。
示例输出显示 Class A 1、14 和 242 有 256 个条目:
1
14
242
提前致谢。
我认为您可以使用此问题函数用点拆分列数据:
split-value-from-one-field-to-two
SPLIT_STR(class_a, '.', 1) as class_a
或者将第一个参数 (A) 保存在单独的列中,然后在您的查询中使用该列。
然后使用按 'A' class 列分组的计数查询,如下所示:
SELECT *, COUNT(A) AS cnt_a FROM class_a
GROUP BY COUNT(A)
WHERE COUNT(A) = 256
此查询可能无法很好地执行,因为它无法利用任何现有索引,但它应该可以为您解决问题。在这里,您从原始 IP 地址字段(此处假定名称为 'ip')创建一个 class_a 字段,计算每个 class_a 字段的不同 class b 值的数量值,然后只返回 class b 值的计数 = 256.
的情况SELECT
SUBSTRING_INDEX(ip, '.', 1) AS class_a,
COUNT(DISTINCT ip) as class_b_count
FROM table
GROUP BY class_a
HAVING class_b_count = 256
即使您不在基础 ip 地址字段上强制使用唯一值,这也会起作用。如果您已经有了这个约束,您可以在 COUNT()
函数
DISTINCT
关键字
不过,我建议您可以将您的 IP 地址拆分成多个部分,如果这是您要定期 运行 的查询,以便您可以利用索引。