У меня новая проблема с запросом:
Я хочу обновить столбец 'column' в зависимости от идентификатора с некоторыми новыми данными:
UPDATE table SET column = CASE
WHEN id = 2 THEN CONCAT(`column`, ',7')
WHEN id = 3 THEN CONCAT(`column`, ',10')
ELSE column
END;
К сожалению, добавление новых значений в столбец должно иметьзапятая в начале, потому что в столбце хранятся данные в виде значений, разделенных запятыми.Например, это выглядит так:
id | column
-------------
2 | 3, 1, 20
3 | 1, 5
После выполнения запроса я получаю:
id | column
-------------
2 | 3, 1, 20, 7
3 | 1, 5, 10
Это все хорошо до сих пор.К сожалению, если я обновляю пустой столбец, все начинается с запятой и выглядит так:
id | column
-------------
2 | ,7
3 | ,10
Это вызывает некоторые проблемы при получении данных из db, потому что, когда я взрываю (), это делает первое значение массивапустой.Я хочу удалить такие первые запятые при обновлении таблицы.Я предполагаю, что должен сделать несколько операторов if, которые проверяют длину столбца (с char_length) и, если это пустое обновление без первого, начинаются с запятой.Можете ли вы помочь мне с правильным синтаксисом?
Описание: Как сделать правильный запрос, который обновляет столбец, как описано выше, со значениями, начинающимися с запятой, если существует «столбец».Если 'column' пусто, обновите его переменной без запятой.