Заменить числа в MySQL

0

Я хочу заменить конкретные числа точным совпадением в значениях запятой в таблице Mysql с столбцом запроса.

Например, значение равно: 0,40,140,240,340,440
и теперь я хочу заменить 40 на 50, тогда результат будет: 0,50,140,240,340,440

Обратите внимание, что тип данных в этой колонтитуле - "Текст".

Теги:
phpmyadmin

1 ответ

1

Я согласен с вышеприведенными замечаниями, что это не очень хороший способ хранить эти данные, но я знаю, что иногда требования к бизнесу требуют от нас сделать что-то менее оптимальное. Итак, в этом духе вы можете написать SQL, который:

  1. добавить запятые в начало и конец строки
  2. замените ', 40' 'на', 50, '
  3. удалить передние и конечные запятые

Выполнение шагов один и три позволит вам всегда предполагать, что все записи начинаются и заканчиваются запятыми, чтобы вы случайно не изменяли 140-150 или 400-500. Таким образом, это выглядело бы примерно так:

SUBSTRING(REPLACE(',' + test + ',', ',40,', ',50,'), 2, LEN(test))

Когда я попробовал это на вашей строке, результат был "0,50,140,240,340,440".

  • 0
    Спасибо Человек за этот трюк, но он не работает для меня. Пожалуйста, ведите меня, если я делаю что-то не так. Вот мой запрос UPDATE <table> set <field> = SUBSTRING(REPLACE(',' + <field> + ',', ',40,', ',50,'), 2, LENGTH(<field>) where id=1
  • 0
    Выше обновляется с пустым
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню