2015-10-27 84 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,',',')