Удалить значение из таблицы
Есть колонка в таблице, в которую записываются id через запятую - "150,90,555,765,210". И есть переменная, которая содержит id, которое нужно удалить из колонки - "$removeid = 555;". Можно ли как-то через mysql-запрос удалить из колонки число, которое содержится в переменно, естественно, вместе с лишней запятой?
Ответы (2 шт):
Автор решения: Daniel Protopopov
→ Ссылка
Смотрите в сторону использования REGEX_REPLACE с RLIKE:
UPDATE `table_name`
SET
column_name = REGEXP_REPLACE(column_name,regex_pattern_to_find,replaceable_text)
WHERE
column_name RLIKE 'regex_pattern_to_find'
Автор решения: Darevill
→ Ссылка
Если уж так сильно хочется записать множественные связи в строку, то удалить конкретное число из любой позиции можно таким запросом:
$query = "UPDATE table "
. "SET ids = TRIM(',' FROM REPLACE(CONCAT(',', ids, ','), '," . (int)$removeid . ",', ','))"
. "WHERE ...";