Посчитать длину подстроки в строке

330
06 июля 2017, 01:27

Большая просьба помочь со следующей задачей, есть строки типа: "0000---111---222000001234567890" "0012345678900001"" то есть строки состоят из цифр от 0 до 9 и символа "-" Необходимо посчитать в каждой строке максимальное количество подряд символов 0 То есть в первой строке ответ: 5 во второй 4...

с sql работаю только месяц....никак не получается. заранее спасибо!

Answer 1
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");
READ ALSO
Как правильно перенести базу данных MySql Wordpress?

Как правильно перенести базу данных MySql Wordpress?

Обычно переносил сайты на wordpress путем копирования файлов и дампа базы данных с заменой url в самой, бд и правкой wp-configНо сейчас потребовалось...

305
В чем заключается ошибка в SQL запросе?

В чем заключается ошибка в SQL запросе?

Почему этот запрос выдает ошибку (#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'of France’ AND Countriesname = ‘France’...

250
Хранить json в бд?

Хранить json в бд?

Мне нужно, чтобы валюты обновлялись в реальном времениУ меня есть сервис openexchangerates

236
Jackson.Парсинг простой, а не JSON строки

Jackson.Парсинг простой, а не JSON строки

Интересует, можно ли скормить обычную строку Джексону? И потом уже построить 2 списка , по значениям? Вот строка которую я получил, после парсинга...

320