如何更新行而不删除mysql中的当前值?

时间:2014-02-05 04:34:38

标签: php mysql sql optimization sql-update

我的一张桌子有一个字段tags,字段的值如{2,3,8}

tag_id  | r_tags  
--------|------------   
1       | {2,3,8}  
--------|------------  
2       | {5,8}

我想更新字段而不删除当前值。对于前者如果我需要为标记ID 5添加1,那么{2,3,8}应该像{2,3,8,5}

现在它的作品就像

 1. Select the current value.
 2. Add 5 using php and created new string.
 3. Update the row.

我只是想知道是否只能通过MySql?

3 个答案:

答案 0 :(得分:3)

这应该有效 - 假设您要在r_tags的{​​{1}}中添加5,这应该是查询 -

tag_id = 1

在php中,

UPDATE tags SET r_tags = CONCAT(SUBSTRING(r_tags, 1, CHAR_LENGTH(r_tags) - 1),',5','}') WHERE tag_id = 1;

答案 1 :(得分:0)

UPDATE your_table SET your_field = REPLACE(your_field, '}', concat(',', new_value, '}') WHERE your_field = ?

答案 2 :(得分:0)

您可以尝试以下查询Mysql,无论您想添加什么,都可以用'5'替换任何值。

Update tbl_tags SET r_tags = INSERT(r_tags, INSTR(r_tags, '}'), 1, CONCAT(',','5','}')) WHERE tag_id = '1'