mysql 如何使用JSON_EXTRACT() 取json值
mysql取json字符串字段下的某個鍵的值
要求: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
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
本篇文章是對mysql數(shù)據(jù)庫優(yōu)化進行了詳細的總結(jié)與介紹,需要的朋友參考下2013-06-06Navicat for MySQL定時備份數(shù)據(jù)庫及數(shù)據(jù)恢復(fù)詳解
這篇文章主要介紹了Navicat for MySQL定時備份數(shù)據(jù)庫及數(shù)據(jù)恢復(fù)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10MySQL控制流函數(shù)(-if?,elseif,else,case...when)
這篇文章主要介紹了MySQL控制流函數(shù)(-if?,elseif,else,case...when),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07