MySQL作為一種傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),一直沒(méi)有內(nèi)置支持JSON字段的能力。好在MySQL 5.7版本進(jìn)行了改進(jìn),新增了對(duì)JSON數(shù)據(jù)類型的支持。其中比較實(shí)用的功能就是可以通過(guò)JSON函數(shù)快速地操作和查詢JSON數(shù)據(jù)。
在日常的開(kāi)發(fā)工作中,我們經(jīng)常遇到要對(duì)JSON數(shù)據(jù)進(jìn)行追加的情況。一般的做法是將JSON數(shù)據(jù)讀取到程序中,然后對(duì)其進(jìn)行修改并重新寫(xiě)回?cái)?shù)據(jù)庫(kù)中。但這種做法對(duì)網(wǎng)絡(luò)傳輸和系統(tǒng)性能是一種負(fù)擔(dān)。MySQL 5.7版本提供了一種更加優(yōu)雅的解決方案,即使用JSON函數(shù)來(lái)追加JSON數(shù)據(jù)。
UPDATE table_name SET json_column = JSON_ARRAY_APPEND(json_column, "$", {"key": "value"});
以上代碼中,我們使用了JSON_ARRAY_APPEND函數(shù)將一個(gè)新的JSON對(duì)象追加到了名為json_column的JSON數(shù)組中。其中"$"表示數(shù)組的末尾,{"key": "value"}為要追加的JSON對(duì)象。
使用JSON函數(shù)來(lái)操作和查詢JSON數(shù)據(jù),可以讓我們的代碼更簡(jiǎn)潔、高效。但需要注意的是,在使用JSON函數(shù)之前,需要先確保MySQL的版本達(dá)到了5.7及以上。