gpt4 book ai didi

MySQL在不知道的情况下获取以相同模式开头的行数

转载 作者:行者123 更新时间:2023-12-01 00:41:06 31 4
gpt4 key购买 nike

我有一个 MySQL 数据库,其中包含一个包含 MAC 地址的表,我想知道有多少组具有相同的制造商(MAC 的前 3 个八位字节)。

我可以选择具有相同三个起始八位字节的 mac 组:

select `mac` from `t1` where `mac` LIKE 'FC:E9:98%';

但那样的话,我必须为每个制造商手动完成。有没有什么方法可以要求每组不同的 mac 以相同的三个八位字节开头,而不必指定它们?

谢谢!

编辑:

谢谢大家这么快的回答。这两种解决方案都运行良好:

select left(mac,8) mac , count(1) cnt from t1 group by left(mac, 8);

select count(*),mac from t1 group by SUBSTRING_INDEX(mac,':',3);

我对你的答案进行投票的声誉仍然太低,但你为我节省了很多时间 +1! :)

最佳答案

这应该有效(尽管 LEFT 函数可能只适用于 qsl 服务器;我不知道,否则使用 substring 方法。编辑:查找:LEFT在 mysql 中也可用)。 LEFT 接受一个字符串和一个整数作为参数,返回字符串的第一个(左边)字符,字符数由第二个整数参数决定。

SELECT     LEFT(mac, 8) mac
, COUNT(1) CNT
FROM T1
GROUP BY LEFT(mac, 8)

关于MySQL在不知道的情况下获取以相同模式开头的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32374113/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com