Assumed roles is a C() field, eg C(10), what do you do?
roles = roles+'x' is setting role to it's old C(10) value plus an 'x', but since that is a C(11) value the 'x' at the end is cut off.
If you see 'text' stored within the roles field, what actually is stored in it is 'text ', including trailing spaces. You want to add x as in 'textx', not as in 'text x', then you need to trim:
update table1 set roles = rtrim(roles) + 'x' where id = 1
Bye, Olaf.