表結(jié)構(gòu)如下:
1
2
|
id varchar (32) info json |
數(shù)據(jù):
1
2
|
id = 1 info = { "age" : "18" , "disname" : "小明" } |
--------------------------------------------
現(xiàn)在我需要獲取info中disanme的值,查詢方法有:
1.
1
|
select t.id,JSON_EXTRACT(t.info, '$.disname' ) as disname from tableName t where 1=1 |
結(jié)果:
id = 1, disname=“小明”
以上sql查出的disname值是帶有雙引號(hào)的,有時(shí)我們不需要雙引號(hào),此時(shí)就需要用到下面這種方式。
2.
1
|
select t.id,t.info ->> '$.disname' as disname from tableName t where 1=1 |
結(jié)果:
1
|
id = 1 , disname=小明 |
ps:下面看下mysql查詢json字段
建表語(yǔ)句
1
2
3
4
5
6
|
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ù)外面需要單引號(hào)來(lái)區(qū)別
1
2
3
4
5
|
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ù)如下
查詢語(yǔ)句
1
|
SELECT id,JSON_EXTRACT( USER , '$.name' ) FROM test; |
下面是查詢結(jié)果
總結(jié)
以上所述是小編給大家介紹的mysql查詢字段類型為json時(shí)的兩種查詢方式 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
原文鏈接:https://www.cnblogs.com/lghao/archive/2019/07/09/11156933.html