2017-12-08 1 views
1

나는 테이블이 product_option_param 열을 가지고라는이 povs 기본적으로 (예를 들어, [1,2,3])MySQL의 json_remove NULL을 반환

내가 삭제해야, 대한 ID가 JSON 배열을 유지 JSON 형식의 예를 들어, 하나의 ID , I이 실행 :

UPDATE product_option_param 
SET povs = JSON_REMOVE(
    povs, replace(JSON_SEARCH(povs, 'one', 1), '"', '') 
) 
WHERE json_search(povs, 'one', 1) IS NOT NULL 

을하지만 단지 널로 배열 1있는 모든 셀들을 턴. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

시도 :

SET @`id` := '1'; 

UPDATE `product_option_param` 
SET `povs` = 
    JSON_REMOVE(
    `povs`, 
    JSON_UNQUOTE(
     JSON_SEARCH(
     REPLACE(
      REPLACE(
      REPLACE(
       `povs`, 
       '[', 
       '["' 
      ), 
      ']', 
      '"]' 
     ), 
      ',', 
      '","' 
     ), 
     'one', 
     @`id` 
    ) 
) 
) 
WHERE 
    JSON_CONTAINS(`povs`, @`id`); 

db-fiddle를 참조하십시오.