从 table 中获取值按升序排列的行数,如 1、2、3,直到发生中断,如 1、2、3、7、8、9、10

Get count of rows having values in ascending sequence like 1,2,3 until a break occurs like 1,2,3,7,8,9,10 from table

ip_availableTable数据为:

ip_address parent
10010010024 1987
10010010026 1987
10010010027 1987
10010010033 1987
10010010034 1987
10010010035 1987
10010010036 1987
10010010037 1987
10010010090 2010

同样还有更多ip_addresses具有其他父值

我想要这样的结果集

ip_address_min parent count
10010010024 1987 3
10010010033 1987 5
10010010090 2010 1

数据库是 MySQL 每个正则序列都要计数,不管父值是否重复。

多一点细节下次会有所帮助,例如包括您的 table 结构。 但我相信这会对你有所帮助。

SELECT MIN(ip_address) as ip_address_min, MIN(parent) as parent, COUNT(ip_address) as count 
FROM ip_available
GROUP BY LEFT(ip_address,length(ip_address)-1);

https://www.db-fiddle.com/f/5dw4hvSfLm5idNjknrj6YX/0