2015-10-27 46 views
1

你好我有一个数据库,我需要用逗号分隔值更新其中一个字段。正好我需要做的事情就像..说,在该领域的价值是872,875,879,我需要添加812该字段,以便更新后它应该看起来像872,875,879,812,同时我需要更新一些空值812在specific_id表中的其余区域。如何更新和删除连续使用mysql

我不知道如何做到这一点?添加的号码本的方法就是像

我的表:

sl_no name col1 col2 specific_id 
    829  x  123 456 859,802 
    853  y  111 121 872,875,879 
    861  z  101 145 **812**,888,844 
    883  a  111 666 877,866 

我需要这样的

sl_no name col1 col2 specific_id 
    829  x  123 456 859,802 
    853  y  111 121 872,875,879,**812** 
    861  z  101 145 888,844 
    883  a  111 666 877,866 

输出我可以这样做了更新,但我怎么能删除该值查询单排

update tablename 
set specific_id = Concat(specific_id, ',', '$var') where id = 853 

任何帮助,请

回答

1

不,你不能做更新,并在同一查询中删除,

你只能结合

DELETE and SELECT 
UPDATE and SELECT 

这不是为MySQL优化有道只是 因为每个查询都设有不同的查询成本。

而且在MyISAM中,它涉及到表级锁写

举例UPDATE和SELECT

UPDATE TABLE_A 
    SET SOME_COLUMN = (SELECT SOME_COLUMN_B FROM TABLE_B WHERE ... LIMIT 1) 

举例DELETE和SELECT

DELETE FROM TABLE_A WHERE TABLE_A IN(SELECT ID FROM TABLE_B) 
-1

这将有助于您可以连接现有数据中的新值。

update my_table set data=concat(specific_id, ',812')

,并删除从价值退出的部分,你应该遵循以下的东西。

UPDATE my_table SET specific_id=REPLACE(specific_id,',812,',',')