Задать вопрос
@freeeeez

Как получить только цифры из строки MySQL?

У меня в таблице есть столбец с расстояниями. Значения там, '99 км', '2 100 км', '17 083 км' и т.п. Как составить запрос, чтобы получить соответственно 99, 2100, 17083?
  • Вопрос задан
  • 1271 просмотр
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Fortop
Tech/Team lead
Не хранить в столбце значение и размерность.
Вообще.
Никогда.

Если вам нужно хранить расстояние, то создаете 2 столбца
Значение ,  Размерность
100.25, км
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DarkRaven
@DarkRaven
разработка программного обеспечения
В своем решение я применил такую функцию:
CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32)
BEGIN
  DECLARE i, len SMALLINT DEFAULT 1;
  DECLARE ret CHAR(32) DEFAULT '';
  DECLARE c CHAR(1);

  IF str IS NULL
  THEN 
    RETURN "";
  END IF;

  SET len = CHAR_LENGTH( str );
  REPEAT
    BEGIN
      SET c = MID( str, i, 1 );
      IF c BETWEEN '0' AND '9' THEN 
        SET ret=CONCAT(ret,c);
      END IF;
      SET i = i + 1;
    END;
  UNTIL i > len END REPEAT;
  RETURN ret;
END


И ее использовал в запросе:

SELECT digits(t.somecol) FROM tablename
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽