반응형
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
반응형
'programing' 카테고리의 다른 글
매트 날짜 선택기 날짜 형식을 DD/MM/YYY로 가장 간단한 방법으로 변경하는 방법은 무엇입니까? (0) | 2023.07.24 |
---|---|
XMLHttpRequest 모듈이 정의되지 않음/찾을 수 없음 (0) | 2023.07.24 |
AJAX를 사용하여 양식 파일을 보내는 중 오류 발생 (0) | 2023.07.24 |
데이터베이스 정렬을 변경한 후 단순 쿼리가 작동하지 않음 (0) | 2023.07.24 |
두 개의 열을 사용하는 mysql "Where not in" (0) | 2023.07.24 |