В старых версиях MySQL переменные являются самым простым методом:
set @rn := 0;
set @grp := '';
update t
set value = (@rn := if(@grp = t.group, @rn + 1,
if(@grp := t.group, 1, 1)
)
)
order by group, id;
В MySQL 8.0 используйте второй запрос fa06.
Просто рассчитайте:
broadcast = ip | ( ~ subnet )
(Broadcast = ip-addr или инвертированная маска подсети)
широковещательный адрес имеет бит 1
, где маска подсети имеет бит 0
.
Может ли это быть?
unsigned broadcast(unsigned ip,unsigned subnet){
unsigned int bits = subnet ^ 0xffffffff;
unsigned int bcast = ip | bits;
return bcast;
}
Редактировать: Я считал, что ip и подсеть без "."