mysql查詢字段類型為json時的兩種查詢方式
表結(jié)構(gòu)如下:
id varchar(32) info json
數(shù)據(jù):
id = 1
info = {"age": "18","disname":"小明"}
--------------------------------------------
現(xiàn)在我需要獲取info中disanme的值,查詢方法有:
1.
select t.id,JSON_EXTRACT(t.info,'$.disname') as disname from tableName t where 1=1
結(jié)果:
id = 1, disname=“小明”
以上sql查出的disname值是帶有雙引號的,有時我們不需要雙引號,此時就需要用到下面這種方式。
2.
select t.id,t.info ->> '$.disname' as disname from tableName t where 1=1
結(jié)果:
id = 1 , disname=小明
ps:下面看下mysql查詢json字段
建表語句
Create Table CREATE TABLE `test` ( `id` int(10) , `user` json DEFAULT NULL COMMENT '用戶信息', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
插入數(shù)據(jù)
需要注意的是,json數(shù)據(jù)外面需要單引號來區(qū)別
INSERT INTO test (id,USER) VALUES(1,'{"name": "tom", "age": 18, "money": 3000}');
INSERT INTO test (id,USER) VALUES(2,'{"name": "jack", "age": 20, "money": 100}');
INSERT INTO test (id,USER) VALUES(3,'{"name": "tony", "age": 21, "money": 100}');
INSERT INTO test (id,USER) VALUES(4,'{"name": "danny", "age": 21, "money": 20}');
INSERT INTO test (id,USER) VALUES(5,'{"name": "janny", "age": 23, "money": 20}');
表數(shù)據(jù)如下

查詢語句
SELECT id,JSON_EXTRACT(USER,'$.name')FROM test;
下面是查詢結(jié)果

總結(jié)
以上所述是小編給大家介紹的mysql查詢字段類型為json時的兩種查詢方式 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
數(shù)據(jù)庫查詢哪個對像里面包含什么字段方法語句
在本篇文章里小編給大家整理的關(guān)于數(shù)據(jù)庫查詢哪個對像里面包含什么字段方法語句有需要的朋友們可以學習下。2019-08-08
使用MySQL設(shè)置遠程數(shù)據(jù)庫以優(yōu)化網(wǎng)站性能的操作步驟
隨著您的應(yīng)用程序或網(wǎng)站的增長,您可能會發(fā)現(xiàn)已經(jīng)超出了當前的設(shè)置,如果您目前將 Web 服務(wù)器和數(shù)據(jù)庫后端托管在同一臺 VPS 上,一個好主意是將這兩個功能分開,以便每個功能可以在自己的機器上運行和增長,在本指南中,我們將討論如何配置一個遠程數(shù)據(jù)庫服務(wù)器2024-11-11
mysql不同數(shù)據(jù)庫不同數(shù)據(jù)表導入數(shù)據(jù)
這篇文章主要介紹了mysql不同數(shù)據(jù)庫不同數(shù)據(jù)表導入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2015-07-07

