最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql 直接查詢存儲(chǔ)的Json字符串中的數(shù)據(jù)

 更新時(shí)間:2022年02月17日 09:13:53   作者:daopinz  
本文主要介紹了Mysql直接查詢存儲(chǔ)的Json字符串中的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

我們平時(shí)使用mysql,出于項(xiàng)目需求,可能需要直接將Java對(duì)象或者一個(gè)大json,直接存到表中的某個(gè)字段中;使用的時(shí)候再查出來(lái),反序列化到對(duì)象或者一個(gè)Map中,方便我們操作;

大多時(shí)候,我們可能并不需要所有的數(shù)據(jù),只想使用這個(gè)對(duì)象或者json中的某一個(gè)值,來(lái)做邏輯判斷而已

那我們可以這樣做,例如:原來(lái)我們需要查出某個(gè)字段的數(shù)據(jù),然后反序列化成對(duì)象再調(diào)用其中的一個(gè)屬性

SELECT content FROM table_name WHERE id = 32;

查詢結(jié)果:
列名:content
結(jié)果:{"fieldType":"SELECT","selectType":"SINGLE","options":["本科","研究生","碩士"]}

TableNameContent content = JsonUtils.jsonNode2Type(TableNameContent.class, TableName.getContent());
 
 if (SELECT.equals(content.getFieldType())){
     //bala... bala...
 }

這樣做,其實(shí)也沒(méi)啥毛病,那么其實(shí)還可以換一種其他的方式;

我們可以使用使用 json字段名->’$.json屬性’ 進(jìn)行查詢 直接在content這個(gè)列里查出json后,使用mysql自帶的函數(shù),直接查詢出我們想要的某一個(gè)字段;

SELECT content, REPLACE(json_extract(content,'$.fieldType'),'"','') fieldType 
FROM table_name WHERE id = 32;
或
SELECT content, REPLACE(content->'$.fieldType','"','') fieldType 
FROM table_name WHERE id = 32;

查詢結(jié)果:
列名:content                                                                       fieldType
結(jié)果:{"fieldType":"SELECT","selectType":"SINGLE","options":["本科","研究生","碩士"]}    SELECT

那我們就可以直接拿到這個(gè)字段的值來(lái)進(jìn)行做我們想做的事情了。直接查出來(lái)的數(shù)據(jù)要是原來(lái)存的時(shí)候就帶有雙引號(hào),那么查出來(lái)的也是帶雙引號(hào)的,可以使用REPLACE函數(shù)替換一下就好了。

當(dāng)然還有更多的用法:

1 -->  SELECT content FROM table_name WHERE content->'$.fieldType'='SELECT';
 
{"fieldType":"SELECT","selectType":"MULTIPLE","options":["選擇一","選擇二","選擇三"]}
{"fieldType":"SELECT","selectType":"SINGLE","options":["2w","3w","4w","5w"]}
{"fieldType":"SELECT","selectType":"SINGLE","options":["本科","研究生","碩士"]}
{"fieldType":"SELECT","selectType":"SINGLE","options":["11","22","44","23"]}
 
2 --> SELECT content FROM sy_config_member_info WHERE content->'$.fieldType'='SELECT' AND content->'$.selectType'='MULTIPLE';
 
{"fieldType":"SELECT","selectType":"MULTIPLE","options":["選擇一","選擇二","選擇三"]}

當(dāng)然,這樣做的性能可能就不要指望很高了噢,謹(jǐn)慎使用哈~

到此這篇關(guān)于Mysql 直接查詢存儲(chǔ)的Json字符串中的數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mysql 直接查詢存儲(chǔ)Json內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

溧阳市| 虎林市| 潍坊市| 嵩明县| 郑州市| 汶川县| 泸州市| 安阳县| 岚皋县| 博湖县| 东山县| 铜山县| 乐陵市| 岢岚县| 怀集县| 巴楚县| 彭水| 姜堰市| 南宁市| 尼玛县| 龙州县| 抚州市| 修水县| 金华市| 苏尼特左旗| 甘南县| 宿迁市| 繁昌县| 芮城县| 巴彦淖尔市| 蒲江县| 乌拉特前旗| 乌海市| 宜丰县| 汤阴县| 延庆县| 军事| 石棉县| 孟连| 湾仔区| 双流县|