반응형
Mysql JSON 업데이트 키 값
다음과 같은 테이블이 있습니다.
CREATE TABLE `campus_tb` (
`campus_id` int(11) NOT NULL AUTO_INCREMENT,
`campus_dataJSON` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`campus_dataJSON`)),
PRIMARY KEY (`campus_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
INSERT INTO `campus_tb`( `campus_dataJSON`) VALUES ( '[
{"id":"100","name":"James","age":"17","course":"IT"},
{"id":"101","name":"Eric","age":"19","course":"CS"},
{"id":"102","name":"Julie","age":"21"}]')
+--------------------+-----------------------------------------------------------+
| campus_id | campus_dataJSON |
+--------------------+-----------------------------------------------------------+
| 1 | [
| {"id":"100","name":"James","age":"17","course":"IT"},
| {"id":"101","name":"Eric","age":"19","course":"CS"},
| {"id":"102","name":"Julie","age":"21"}
|
| ]
----------------------------------------------------------------------------------
| 2 | [
| {"id":"34","name":"Mimi","age":"18","course":"IT"},
| {"id":"35","name":"Jose","age":"20","course":"CS"},
| {"id":"36","name":"Ken","age":"24"}
|
| ]
----------------------------------------------------------------------------------
MariaDB 10.4를 사용하고 있습니다.
MySql 쿼리 Julie에 대한 세부 정보 업데이트
campus_id = 1
그녀가 다음과 같이 될 수 있도록 "코스"를 추가하는 것.{"id":"102","name":"줄리","나이":"21","코스":"MASCOM",
끝에 "k"가 있는 "Eric"에서 "Erick"으로 업데이트하기 위한 Mysql 쿼리
저는 지금까지 노력해 왔습니다.
UPDATE `campus_tb`
SET `campus_dataJSON` = JSON_SET (`campus_dataJSON`, TRIM( '"' FROM JSON_SEARCH(`campus_dataJSON`,'one','Julie')),'MASCOM')
WHERE
`campus_id` = 1 AND
JSON_EXTRACT(`campus_dataJSON`,'$.id') = '102';
반환됩니다.0 rows affected
구글 검색을 많이 했어요.
기본적으로 JSON_SET 함수를 사용해야 합니다.예를 들어 첫 번째 질문은 다음 방법으로 해결할 수 있습니다.
update campus
set campus_data = json_set(
campus_data, '$[2].course', 'MASCOM')
where campus_id = 1;
SQLize.online에서 테스트
JSON 경로를 모르는 경우 다음과 같이 JSON_SEARCH & JSON_UNQUOTE를 사용할 수 있습니다.
update campus
set campus_data = json_set(
campus_data,
json_unquote(json_search(campus_data, 'one', 'Eric')),
'Erick'
)
where campus_id = 1;
여기서 바이올린 연주
언급URL : https://stackoverflow.com/questions/65009394/mysql-json-update-key-value
반응형
'it-source' 카테고리의 다른 글
Firebase 스토리지 이미지 저장 및 검색 방법 (0) | 2023.06.06 |
---|---|
위임:이벤트 이미터 또는 각도로 관찰 가능 (0) | 2023.06.06 |
변수를 사용하여 열 이름을 지정하는 방법 ggplot (0) | 2023.06.06 |
Android 그리기 가능 디렉토리에 하위 디렉토리를 포함할 수 있습니까? (0) | 2023.06.06 |
UITableViewCell에서 UITableView를 가져오는 방법은 무엇입니까? (0) | 2023.06.06 |