1. 程式人生 > 實用技巧 >mysql 查詢json

mysql 查詢json

------------------------ 陣列 ------------------------

> 陣列提取

-- ------------------------------ 提取 JSON_EXTRACT ------------------------------
-- 定義陣列
SET @mapJSON = '[{"id":"10000004555096","name":"1.docx","format":"docx","type":0},{"id":"10000004555098","name":"2.doc","format":"doc","type":0},{"id":"10000004555097","name":"3.html","format":"html","type":1}]
'; -- 示例1:提取陣列指定下標的元素 SELECT JSON_EXTRACT(@mapJSON, "$[0]") AS result; -- 示例1:提取陣列每個元素的欄位 SELECT JSON_EXTRACT(@mapJSON, "$[*].name") AS result; -- 示例1:提取陣列指定下標元素的欄位,下標從0開始 SELECT JSON_EXTRACT(@mapJSON, "$[1].name") AS result; -- 示例1:提取陣列指定下標元素的欄位 SELECT JSON_EXTRACT(@mapJSON, "$[2].type") AS result;

> 陣列查詢

-- ------------------------------ 查詢 JSON_CONTAINS ------------------------------
-- 定義陣列
SET @mapJSON = '[{"id":"10000004555096","name":"1.docx","format":"docx","type":0},{"id":"10000004555098","name":"2.doc","format":"doc","type":0},{"id":"10000004555097","name":"3.html","format":"html","type":1}]';

-- 示例1:查詢 id 等於 10000004555096 的元素
SELECT JSON_CONTAINS(JSON_EXTRACT(@mapJSON, "$[*]"), JSON_OBJECT('id', '10000004555096')) AS result; -- 示例1:查詢 id 等於 10000004555096 的元素 SELECT JSON_EXTRACT(@mapJSON, "$[*].name") AS result; SELECT JSON_CONTAINS(JSON_EXTRACT(@mapJSON, "$[*].name"), '"3.htm1"') AS result;