programing

Mysql JSON, 값 찾기 및 바꾸기

testmans 2023. 7. 24. 22:21
반응형

Mysql JSON, 값 찾기 및 바꾸기

사이즈와 색상별로 제품 가격과 재고가 포함된 테이블이 있습니다.JSON 형식으로 넣었습니다.테이블 구조는 다음과 같습니다.

id | chart
---+--------------------------------------------------------------+
1  | [{"size":"XL", "color":"Red", "stock":"30", "price":"300"},  |
   |  {"size":"XXL", "color":"Red", "stock":"40", "price":"400"}, |
   |  {"size":"XXL", "color":"Blue", "stock":"35", "price":"450"}]|
-------------------------------------------------------------------

사이즈가 XL과 일치하고 색상이 빨간색과 일치하면 가격을 350으로 업데이트하고 싶습니다.이 코드를 시도해봤는데,

UPDATE t
SET chart = REGEXP_REPLACE(
  JSON_EXTRACT(chart, '$'), 
  JSON_OBJECT("size", "XL", "color", "Red", "stock", "([0-9]+)", "price", "([0-9]+)"),
  JSON_OBJECT("size", "XL", "color", "Red", "stock", "$1", "price", "350")
)
WHERE id = 1;

성공적으로 실행됩니다.하지만 주요 문제는 $1 문자열로 인한 주식 가치 변화입니다.여기서 나는 알 수 없는 이전의 주식 가치로 업데이트되어야 합니다.

언급URL : https://stackoverflow.com/questions/72358369/mysql-json-find-and-replace-value

반응형