Большая просьба помочь со следующей задачей, есть строки типа: "0000---111---222000001234567890" "0012345678900001"" то есть строки состоят из цифр от 0 до 9 и символа "-" Необходимо посчитать в каждой строке максимальное количество подряд символов 0 То есть в первой строке ответ: 5 во второй 4...
с sql работаю только месяц....никак не получается. заранее спасибо!
DELIMITER @@;
CREATE FUNCTION CountZeroes (inString TEXT)
RETURNS INT
DETERMINISTIC
NO SQL
BEGIN
DECLARE counter INT DEFAULT 0;
DECLARE temp INT DEFAULT 0;
SET inString = COALESCE(inString, '');
WHILE inString != '' DO
IF LEFT(inString, 1) = '0' THEN SET temp = temp + 1;
ELSE
SET counter = GREATEST(counter, temp);
SET temp = 0;
END IF;
SET inString = SUBSTRING(inString FROM 2);
END WHILE;
RETURN GREATEST(counter, temp);
END;
@@;
DELIMITER ;
И потом
SELECT CountZeroes("0000---111---222000001234567890")
, CountZeroes("0012345678900001");
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники