在現實生活中,每每會有一些你意向不到的需求,假設一張訂單詳情表,裏面有ID,商品信息(包含購買的一件商品的全部信息,包括商品ID,價格...等),購買數量,單價等字段,若是有一個功能須要你把商品信息裏的商品ID抽取出來,放到訂單詳情表裏新建的一個商品ID字段,這時候,你該如何處理?
解決方案SQL腳本以下:sql
UPDATE t_ord_detail dtl INNER JOIN ( SELECT dtl_first.id, CASE WHEN LENGTH(dtl_first.prod_id) > 10 THEN SUBSTR( dtl_first.prod_id, 1, LOCATE(',', dtl_first.prod_id) - 1 ) ELSE dtl_first.prod_id END prod_id FROM ( SELECT id, SUBSTR( dtl.prod_info, LOCATE('"prodId":', dtl.prod_info) + 9, LOCATE(',"prodNo"', dtl.prod_info) - ( LOCATE('"prodId":', dtl.prod_info) + 9 ) ) prod_id FROM t_ord_detail dtl ) dtl_first ) dtl_new ON dtl_new.id = dtl.id SET dtl.prod_id = dtl_new.prod_id;