關(guān)于Mysql中json數(shù)據(jù)類型的查詢操作指南
下面用這個(gè)表來(lái)執(zhí)行查詢演示:
CREATE TABLE `users` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL COMMENT '姓名', `address` json NOT NULL COMMENT '住址', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入幾條數(shù)據(jù)
INSERT INTO `users` VALUES (1, '張三', '{\"city\": \"石家莊市\(zhòng)", \"tags\": [\"家\", \"公司\"], \"district\": \"橋西區(qū)\", \"province\": \"河北省\"}'); INSERT INTO `users` VALUES (2, '李四', '{\"city\": \"廣州市\(zhòng)", \"tags\": [\"宿舍\"], \"district\": \"珠海區(qū)\", \"province\": \"廣州省\"}'); INSERT INTO `users` VALUES (3, '王五', '{\"city\": \"長(zhǎng)春市\(zhòng)", \"district\": \"綠園區(qū)\", \"province\": \"吉林省\"}'); INSERT INTO `users` VALUES (4, '劉六', '{\"city\": \"昌平區(qū)\", \"province\": \"北京市\(zhòng)"}'); INSERT INTO `users` VALUES (5, '張三三', '[{\"city\": \"石家莊市\(zhòng)", \"tags\": [\"家\", \"公司\", \"學(xué)校\"], \"district\": \"橋西區(qū)\", \"province\": \"河北省\"}, {\"city\": \"鄭州市\(zhòng)", \"tags\": [\"宿舍\"], \"district\": \"橋東區(qū)\", \"province\": \"河南省\"}]'); INSERT INTO `users` VALUES (6, '李四四', '[{\"city\": \"廣州市\(zhòng)", \"tags\": [\"宿舍\"], \"district\": \"珠海區(qū)\", \"province\": \"廣州省\"}, {\"city\": \"廣州市\(zhòng)", \"district\": \"珠海區(qū)\", \"province\": \"廣州省\"}]'); INSERT INTO `users` VALUES (7, '王五六', '[\"家\", \"公司\", \"學(xué)校\"]');
查詢json對(duì)象指定屬性值的數(shù)據(jù)
1、函數(shù)查詢:json_extract(
json字段, '$.json屬性')
select * from users where json_extract(address, '$.province') = "河北省";
2、對(duì)象操作方法進(jìn)行查詢:json字段->'$.json屬性'
select * from users where address->'$.province' = "河北省";
查詢json數(shù)組指定下標(biāo)值的數(shù)據(jù)
1、數(shù)組操作方式查詢:字段->'$[0]'
select * from users where address->'$[0]'= "家";
根據(jù)JSON對(duì)象里面的屬性個(gè)數(shù)查詢
1、函數(shù)查詢:json_length(
json字段)
select * from users where json_length(address) = 2;
根據(jù)JSON數(shù)組里面的數(shù)組長(zhǎng)度查詢
1、函數(shù)查詢:json_length(
json字段)
select * from users where json_length(address) = 2;
查詢JSON對(duì)象屬性值為數(shù)組的任意項(xiàng)存在指定值查詢
1、函數(shù)查詢:JSON_CONTAINS(json字段,JSON_OBJECT('json數(shù)組屬性', '內(nèi)容'))
select * from users where JSON_CONTAINS(address,JSON_OBJECT('tags', '家'));
查詢JSON數(shù)組里面對(duì)象屬性任意項(xiàng)存在指定屬性的數(shù)據(jù)
select * from users where address->'$[*].city' is not null;
查詢JSON對(duì)象存在指定屬性的數(shù)據(jù)
select * from users where address->'$.tags' is not null;
到此這篇關(guān)于關(guān)于Mysql中json數(shù)據(jù)類型的查詢操作指南的文章就介紹到這了,更多相關(guān)Mysql json類型數(shù)據(jù)查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄
這篇文章主要介紹了mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄的相關(guān)資料,需要的朋友可以參考下2015-07-07SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12教你如何讓spark?sql寫mysql的時(shí)候支持update操作
spark提供了一個(gè)枚舉類,用來(lái)支撐對(duì)接數(shù)據(jù)源的操作模式,本文重點(diǎn)給大家介紹如何讓spark?sql寫mysql的時(shí)候支持update操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-02-02一文詳解如何在MySQL中創(chuàng)建函數(shù)
這篇文章主要為大家介紹了一文詳解如何在MySQL中創(chuàng)建函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05數(shù)據(jù)庫(kù)中update與delete使用表別名的深入研究
本文介紹了UPDATE和DELETE?SQL語(yǔ)句在Oracle,?SQLite,?PostgreSQL,?MYSQL,?mariadb等數(shù)據(jù)庫(kù)系統(tǒng)中的執(zhí)行差異,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)數(shù)據(jù)庫(kù)開發(fā)和維護(hù)人員有指導(dǎo)意義,需要的朋友可以參考下2024-10-10mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶,用戶授權(quán)實(shí)操方法
在本篇文章里小編給大家整理的是關(guān)于mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶,用戶授權(quán)實(shí)操方法相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-10-10MySQL實(shí)例精講單行函數(shù)以及字符數(shù)學(xué)日期流程控制
SQL函數(shù)即數(shù)據(jù)庫(kù)的內(nèi)置函數(shù),可以運(yùn)用在SQL語(yǔ)句中實(shí)現(xiàn)特定的功能。SQL單行函數(shù)對(duì)于每一行數(shù)據(jù)進(jìn)行計(jì)算后得到一行輸出結(jié)果。SQL單行函數(shù)根據(jù)數(shù)據(jù)類型分為字符函數(shù)、數(shù)字函數(shù)、日期函數(shù)、轉(zhuǎn)換函數(shù),另外還有一些別的函數(shù)2021-10-10生產(chǎn)環(huán)境MySQL索引時(shí)效的排查過(guò)程
這篇文章主要介紹了生產(chǎn)環(huán)境MySQL索引時(shí)效的排查過(guò)程,文章根據(jù)SQL查詢耗時(shí)特別長(zhǎng),看了執(zhí)行計(jì)劃發(fā)現(xiàn)沒(méi)有走索引的問(wèn)題展開詳細(xì)介紹,需要的朋友可以參考一下2022-04-04