mysql 如何使用JSON_EXTRACT() 取json值
mysql取json字符串字段下的某個(gè)鍵的值
要求:mysql版本5.7及以上
SELECT JSON_EXTRACT('{"uid":"asas02234"}', "$.uid");
由于json的鍵值是帶雙引號。所以需要去掉雙引號。
1.使用replace()做替換
select? ? ? replace(JSON_EXTRACT(infoJson,'$.uid'),'"','') uid from users
laravel 里使用JSON_EXTRACT
$applyList = DB::table('invoice') ? ? ? ? ? ? ->select('applied_at','total_amount','invoice_form','invoice_file','reject_reason') ? ? ? ? ? ? ->selectRAW('replace(JSON_EXTRACT(invoice_detail,"$.owner_name"),\'"\',\'\') as owner_name') ? ? ? ? ? ? ->where('uid',Auth::id())->get();
2.使用 JSON_UNQUOTE()
SELECT JSON_UNQUOTE(JSON_EXTRACT('{"id":"3"}', "$.id"));
$applyList = DB::table('invoice') ? ? ? ? ? ? ->select('applied_at','total_amount','invoice_form','invoice_file','reject_reason') ? ? ? ? ? ? ->selectRAW('JSON_UNQUOTE(JSON_EXTRACT(invoice_detail,"$.owner_name")) as owner_name') ? ? ? ? ? ? ->where('uid',Auth::id())->get();
mysql處理json字符串,JSON_EXTRACT()提取內(nèi)容
MySQL自5.7之后開始支持json類型
相應(yīng)的解析函數(shù)主要是JSON_EXTRACT():
SELECT JSON_EXTRACT('{"ID":"1"}','$.ID');
執(zhí)行結(jié)果:
JSON_EXTRACT('{"ID":"1"}','$.ID')
"1"
去除引號使用函數(shù)JSON_UNQUOTE():
SELECT JSON_UNQUOTE(JSON_EXTRACT('{"ID":"1"}','$.ID'));
執(zhí)行結(jié)果:
JSON_UNQUOTE(JSON_EXTRACT('{"ID":"1"}','$.ID'))
1
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
本篇文章是對mysql數(shù)據(jù)庫優(yōu)化進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06Navicat for MySQL定時(shí)備份數(shù)據(jù)庫及數(shù)據(jù)恢復(fù)詳解
這篇文章主要介紹了Navicat for MySQL定時(shí)備份數(shù)據(jù)庫及數(shù)據(jù)恢復(fù)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10MySQL開放遠(yuǎn)程連接權(quán)限的兩種方法
在我們使用mysql數(shù)據(jù)庫時(shí),有時(shí)我們的程序與數(shù)據(jù)庫不在同一機(jī)器上,這時(shí)我們需要遠(yuǎn)程訪問數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MySQL開放遠(yuǎn)程連接權(quán)限的兩種方法,需要的朋友可以參考下2022-06-06MySQL控制流函數(shù)(-if?,elseif,else,case...when)
這篇文章主要介紹了MySQL控制流函數(shù)(-if?,elseif,else,case...when),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07