MySQL json字段使用

 

 ##插入json數據相似字符串,可是會校驗json格式json

INSERT INTO `ppfdb`.`pm_user_info` (`user_id`, `uuid`, `user_gender`, `user_image_url`, `user_birthday`, `user_real_name`, `user_real_name_helper`,數組

    `user_login_name`, `user_login_password`, `pwd_reset_time`, `user_mobile`, `user_email`, `user_email_activate`, `admin_flag`, `user_id_card`, app

    `user_status`, `blocked_until`, `user_remark`, `registration_ip`, `last_login_ip`, `last_login_time`, `last_client_type`, `add_by`, `add_name`, ui

    `add_time`, `last_edit_by`, `last_edit_name`, `last_edit_time`, `del_flag`, `custom_data`) url

VALUES (null, '2133ewdqawer', '2', NULL, '2017-07-21', '小麥', 'xm', 'xiaomai5', '121212', NULL, '18698563618', NULL, b'0', b'0', NULL, b'0', NULL, NULL, NULL, spa

    NULL, NULL, NULL, '0', 'SYS', '2017-07-21 09:03:31', NULL, NULL, NULL, b'0', '{"color":"red"}');code

 

  ##"material": ip

select custom_data from pm_user_info;ci

##獲取json字段全部key值rem

select user_id, user_login_name, json_keys(custom_data) as 'keys' from pm_user_info;

##根據key獲取值,json_extract別名爲->

select user_id, user_login_name, json_extract(custom_data, '$.add_by') as 'value' from pm_user_info;

select user_id, user_login_name, custom_data->>'$.add_by' as 'value' from pm_user_info;

select user_id, user_login_name, custom_data->'$.add_by' as 'value' from pm_user_info;

 ##根據key刪除值

update pm_user_info set custom_data = json_remove(custom_data, '$.color');

##是否包含鍵或值

select user_id, user_login_name, json_contains_path(custom_data, 'all', '$.material', '$.test')  from pm_user_info;##判斷是否包含全部鍵

select user_id, user_login_name, json_contains(custom_data, '"Fi"', '$.material') from pm_user_info

where json_contains(custom_data, '"Fi"', '$.material') = 1;##判斷是否包含指定值

 

##根據json值做爲條件進行查詢

select user_id, user_login_name, json_extract(custom_data, '$.material') as material from pm_user_info

where custom_data->'$.material'='Fi' order by custom_data->'$.material';

##在json字段內添加或修改值

update pm_user_info set custom_data=json_set(custom_data,'$.add_by','hxm');

update pm_user_info set custom_data=json_set(custom_data,'$.diameter',custom_data->'$.diameter' + 1);

update pm_user_info set custom_data = '{"color":"red"}' where user_id = 1;

##以數組形式拼接一個值

update pm_user_info set custom_data=json_array_append(custom_data,'$.diameter',123);   

相關文章
相關標籤/搜索