Вы можете сделать что-то вроде этого:
SELECT
d1.id,
d2.id,
IF(ABS(d1.day1-d2.day1)=1,1,0) +
IF(ABS(d1.day2-d2.day2)=1,1,0) +
IF(ABS(d1.day3-d2.day3)=1,1,0) +
IF(ABS(d1.day4-d2.day4)=1,1,0) AS onecount
FROM days AS d1
LEFT JOIN days AS d2 ON (d1.id = (d2.id + 1))
WHERE d1.id IS NOT NULL AND d2.id IS NOT NULL;
Результат выглядит так:
id id onecount
66 65 3
67 66 2
68 67 0
...
Fiddle: https://www.db-fiddle.com/ е / 7VAG1GTgj6CXiLKkPAHJtf / 1
На самом деле RFC 2965, документ, который определяет, как cookie работают, определяет, что должен быть никакая максимальная длина ключа cookie или размера значения , и поощряет реализации поддерживать произвольно большой cookie. Максимум реализации каждого браузера будет обязательно отличаться, поэтому консультируйтесь с отдельной документацией браузера.
раздел See 5.3, "Допустимые ограничения реализации", в RFC .
Ключ cookie (раньше определял сессию) и cookie являются тем же самым, используемым по-разному. Таким образом, предел был бы тем же. По данным Microsoft его 4 096 байтов.
обычно ограничиваются 4 096 байтами, и Вы не можете сохранить больше чем 20 cookie на сайт. При помощи единственного cookie с подразделами Вы используете меньше тех 20 cookie, что Ваш сайт выделен. Кроме того, единственный cookie поднимает приблизительно 50 символов для издержек (информация об истечении, и так далее), плюс длина значения, которое Вы храните в нем, весь из которого рассчитывает к 4 096-байтовому пределу. При хранении пяти подразделов вместо пяти отдельных cookie Вы сохраняете издержки отдельных cookie и можете сохранить приблизительно 200 байтов.