У меня есть список с разделителями-запятыми, которые хранятся в поле varchar в таблице mysql.
Можно ли добавлять и удалять значения из списка напрямую с помощью SQL-запросов? Или я должен извлечь данные из таблицы, манипулировать на PHP и заменить ее обратно в mysql?
Невозможно сделать это в двигателях InnoDB и MyIsam в mysql. Может быть в других двигателях (проверьте двигатель CSV).
Вы можете сделать это в хранимой процедуре, но не рекомендуется.
Что вы должны сделать, чтобы решить эту проблему, это реорганизовать ваш код и нормализовать ваш DB =>
оригинальная таблица
T1: id | data | some_other_data 1 | gg,jj,ss,ee,tt,hh | abanibi
Становиться:
T1: id | some_other_data 1 | abanibi T2: id | t1_id | data_piece 1 | 1 | gg 2 | 1 | jj 3 | 1 | ss 4 | 1 | ee 5 | 1 | tt 6 | 1 | hh
и если data_piece является постоянным значением в системе, которое многократно используется, вам нужно также добавить туда таблицу поиска.
Я знаю, что это выглядит больше, но тогда это сэкономит вам такие проблемы, как у вас сейчас, для решения которых требуется гораздо больше времени.