色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 查詢json

錢瀠龍1年前10瀏覽0評論

在MySQL中,我們可以使用如下代碼創建一個表,表中有一個json類型的字段:

CREATE TABLE `students` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`info` JSON NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;

以下代碼向表中添加了一條數據:

INSERT INTO students (name, info)
VALUES ('小明', '{"age": 20, "score": {"math": 90, "english": 80}}');

現在,我們想要查詢這條數據中的某個字段,該怎么辦呢?使用MySQL的內置函數JSON_EXTRACT:

SELECT JSON_EXTRACT(info, '$.age') as age FROM students WHERE name = '小明';

以上代碼會返回查詢結果,其中age字段的值為20。JSON_EXTRACT函數傳入兩個參數,第一個參數是要查詢的json字段,即info,第二個參數是要獲取的json對象的路徑,即$.age。

除了JSON_EXTRACT,MySQL還提供了很多用于查詢json字段的函數,例如JSON_UNQUOTE、JSON_CONTAINS、JSON_KEYS等等。一些常用函數的使用方法如下:

-- 查詢info字段所包含的所有key
SELECT JSON_KEYS(info) as keys FROM students WHERE name = '小明';
-- 查詢info字段是否包含age這個key
SELECT JSON_CONTAINS(info, '{"age": 20}') as is_contain FROM students WHERE name = '小明';
-- 將info中的字符串解析為json對象
SELECT JSON_QUOTE(info->'$.score.math') as score_math FROM students WHERE name = '小明';

使用上述函數,我們可以方便地查詢和操作MySQL中的json字段。