Quote
I have a table with a comma-separated 'groups_members' value (eg 42,43,47,51) ...
And now you've discovered what a Bad Idea that is.
Split the values out into a separate table with the key of the parent record plus the individual values, so instead of :
Groups
+----------+------------+-------------+----
| group_id | group_name | members | ...
+----------+------------+-------------+----
| 1 | group one | 42,43,47,51 | ...
+----------+------------+-------------+----
you should have something more like:
Groups
+----------+------------+----
| group_id | group_name | ...
+----------+------------+----
| 1 | group one | ...
+----------+------------+----
Group Members
+----------+-----------+
| group_id | member_id |
+----------+-----------+
| 1 | 42 |
| 1 | 43 |
| 1 | 47 |
| 1 | 51 |
+----------+-----------+
Now, to remove a member from a group, you issue a delete statement.
delete from Group_Members
where group_id = 1
and member_id = 43 ;
Regards, Phill W.