相关文章推荐
乐观的熊猫  ·  Pandas 的set_option ...·  1 年前    · 
很酷的钢笔  ·  .NET CORE 依赖注入 ...·  1 年前    · 
喝醉的电脑桌  ·  Gitlab的CICD - 知乎·  2 年前    · 
坚强的葫芦  ·  使用 AWS CLI ...·  2 年前    · 

MySQL 新的版本加入了对json字段的支持。
筛选json类型出来为空的行。

SELECT * FROM tableName WHERE JSON_LENGTH(content)=0
content是json类型
不推荐使用:
SELECT * FROM tableName WHERE content LIKE '%[]%'

遇到这样的数据结构,筛选不准确。

[{"id":1,"child":[{……}]},{……}]

MySQL常用json操作

入库的数据类型长这样(json数组)

[{"id":1,"child":[{……}]},{……}]

访问数组下标 $[0]
通过key取value $key.value

通过key取value

  • json_extract : 取出来的value是带引号的
    SELECT json_extract(表字段,'$key') title FROM tableName LIMIT 1

  • $key-> : 取出来的value是带引号的

    SELECT 表字段->'$key' title FROM tableName LIMIT 1

  • $key->> : 取出来的value是不带引号的

    SELECT 表字段->'$key' title FROM tableName LIMIT 1

  • json_unquote : 取出来的value是不带引号的

    SELECT json_unquote(表字段->'$key') title FROM tableName LIMIT 1

SELECT content->'$[0].child[0].title' title FROM tableName LIMIT 1
返回的结果带双引号
在这里插入图片描述
不带双引号:

  • SELECT content->>'$[0].child[0].title' title FROM tableName LIMIT 1
    在这里插入图片描述
MySQL 新的版本加入了对json字段的支持。筛选json类型出来为空的行。SELECT * FROM tableName WHERE JSON_LENGTH(content)=0不推荐使用:SELECT * FROM tableName WHERE content LIKE '%[]%'遇到这样的数据结构,筛选不准确。[{"id":1,"child":[{……}]},{……}]MySQL常用json操作入库的数据类型长这样(json数组)[{"id":1,"child":[.
已经学习完查询某个字段的数据,但是这些数据是所有的数据;在所有的数据的基础上,学习了排序,学习了限制返回个数,学习了返回不同的数据;上面这些情况都是在不加过滤的查询,所以查询的结果都是所有的数据,而不是特定的数据!比如我们查询所有的商品名称,给商品名称排序,限制商品返回数,我们查询的结果都是所有的。     之前我们所有的查询都没有做过滤,好比查看公司的所有员工名称。现在呢?比如查
mysqljson数据是否为空判断对json数据字段,使用JSON_TYPE函数 对json数据字段,使用JSON_TYPE函数 官方文档地址:https://dev.mysql.com/doc/refman/5.7/en/json-attribute-functions.html#function_json-type 可以查询json的数据类型 SELECT JSON_TYPE(a.decoration), a.decoration FROM 表名 a WHERE JSON_TYPE(a.decora