解決思路將1,2切割爲1和2再根據結果查詢對應的中文名稱再組裝起來
使用locate 判斷是否存在 逗號,再使用substring_index切割獲取到左右兩邊的數字(目前場景爲1,2 必定只存在一個逗號,下面的方式不適用多個比如1,2,3,自行想其他辦法切割到,只要把數字切割出來其他內容根據結果進行第二次查詢再使用concat函數組裝起來即可)
sql:
updateg_goods_specificationgppsetgpp.skustr=(selectt.strfrom(selec tif(locate(',',sku)>0,
concat('["',(selectgp.val_namefromg_goods_poramgpwheregp.val_id=(substring_index(g.sku,',',-1))andgp.gid=g.goods_idgroupby
gp.val_name),'","',(selectgp.val_namefromg_goods_poramgpwheregp.val_id=(substring_index(g.sku,',',1))groupbygp.val_name),'"]')
,concat('["',(selectgp.val_namefromg_goods_poramgpwheregp.val_id=(substring_index(g.sku,',',-1))and gp.gid=g.goods_idgroupby
gp.val_name),'"]'))asstr
,goods_id,idfromg_goods_specificationg)twheret.id=gpp.id);
藍色區域爲解決思路,自行參考下