Удалить значение из таблицы

Есть колонка в таблице, в которую записываются 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 ...";
→ Ссылка