mysql 5.7 json 使用備忘

mysql 5.7+版本支持json類(lèi)型字段,提供了 JSON_SET等方法操作json屬性,實(shí)踐如下:

  • 并非一定得是json類(lèi)型才可以使用5.7特性函數(shù)進(jìn)行json查詢(xún),longtext、varchar都可以;
  • 使用longtext或者json類(lèi)型時(shí),navicat查詢(xún)時(shí),無(wú)法展現(xiàn)這些字段需要添加JSON_UNQUOTE或者使用->>
//只能查出ID列
SELECT id,  (task_params),task_params->'$.aa'  FROM ext_task   ;
//可以查出三列結(jié)果
SELECT id,  JSON_UNQUOTE(task_params),task_params->>'$.aa'  FROM ext_task   ;

  • 采用JSON_SET等方法修改屬性值時(shí),如果存放的為數(shù)組,需要使用JSON_ARRAY生成,否則存儲(chǔ)的為字符串,JSON_OBJECT類(lèi)似
//正確方式
UPDATE ext_task SET task_params = JSON_SET(task_params, '$.aa', JSON_ARRAY(' Mysql', 'Database'))  WHERE id = 1;
//錯(cuò)誤方式
UPDATE ext_task SET task_params = JSON_SET(task_params, '$.aa', '[ "Mysql", "Database"]'  WHERE id = 1;

詳情請(qǐng)參閱:官方文檔網(wǎng)址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容