2016-06-10 65 views
0

column(pro_doc)串像[1,2,11,]Mysql替換不是全部字符串?

UPDATE product SET prod_doc = REPLACE(prod_doc, '1,' , '') WHERE prod_id = 2 

結果是2,1

我想成爲2,11

我只是想更換第一1,不是所有的1

有任何解決方案?

非常感謝......

+2

看看到:http://stackoverflow.com/questions/12123477/sql-search-replace-but-only-the-first-time-a-value-出現在記錄中 – Rumpelstinsk

+0

規範化數據並將每個數字存儲在單獨的記錄中會容易得多。 – Shadow

+0

你的字符串是否包含'['和']'?無論您的輸入是正確的還是您的輸出。我假設你不是指「前1」,而是「完整的整數值」,對不對?所以如果你替換1,'[21,31]'不會變成'[2,31]''? – Solarflare

回答

0

使用SUBSTRING_INDEX
查找,的總髮生次數,並將其作爲SUBSTRING_INDEX函數的最後一個參數。

UPDATE product 
SET prod_doc = 
    SUBSTRING_INDEX(
    prod_doc, ',', -(
    ROUND(
     (
     LENGTH(prod_doc) - LENGTH(REPLACE(prod_doc, ',', '')) 
    )/LENGTH(',')) 
    ) 
) 
WHERE prod_id = 2; 

SQL Fiddle Demo