ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 在MYSQL5.7以上,多了一个字段类型:json 原生的JSON优势如下: 1. 存储上类似text,可以存非常大的数据。 2. JSON有效性检查:插入的数据必须是JSON类型的字符串才行。 3. 相比于传统形式,不需要遍历所有字符串才能找到数据。 4. 支持索引:通过虚拟列的功能可以对JSON中部分的数据进行索引。 建表 ~~~ CREATE TABLE json_test ( id INT (11) AUTO_INCREMENT PRIMARY KEY, person_desc JSON ) ENGINE INNODB; ~~~ 插入一条记录: ~~~ INSERT INTO json_test(person_desc) VALUES ('{ "programmers": [{ "firstName": "Brett", "lastName": "McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName": "Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName": "Harold", "email": "cccc" }], "authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "sciencefiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christianfiction" }], "musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }] }'); ~~~ 查看插入的这行JSON数据有哪些KEY: ~~~ SELECT id,json_keys(person_desc) as "keys" FROM json_test ~~~ ~~~ *************************** 1. row *************************** id: 1 keys: ["authors", "musicians", "programmers"] 1 row in set (0.00 sec) 可以看到里面有三个KEY,分别为authors,musicians,programmers。 ~~~