Mysql 將逗號分隔數字替換成對應中文組合(場景商品SKU爲數字組合1,2 將 其組裝爲["顏色","藍色"])

 

解決思路將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);

 

藍色區域爲解決思路,自行參考下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章