如果没记错的话,从mysql 5.7开始,新增了json数据格式的支持。但是,我一般都当成text使用,特别是在搜索的时候,用like方法去检索。
今天,给大家展示一下使用typeorm查询json数据
现在
属性提取:JSON_EXTRACT(字段名, '$.属性名')
- 将JSON中的一位提取为一列单独的列可以对其进行排序分组 (推荐在需要排序、分组特殊情况时使用)
- 由于提取后将生成新的一列,所以不能使用getMany(无法有效还原object)
数组搜索:JSON_CONTAINS(字段名,JSON_ARRAY(数字))
- 检索 JSON 的 number[] 中包含该数字的数据
对象检索:JSON_CONTAINS(字段名,JSON_OBJECT(属性名,查询值))
数据表格如下图
特殊字段介绍:simple-array
- 该类型是存储的是字符串、但是从数据中查询出来后是数组
ps.写完这篇文章之后,特意去百度了一下,原来是我孤陋寡闻了。::>_<::
Mysql5.7版本以后新增的功能,Mysql提供了一个原生的Json类型,Json值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式,并提供了不少内置函数,通过计算列,甚至还可以直接索引json中的数据。
在Json列插入或者更新的时候将会自动验证Json文本,未通过验证的文本将产生一个错误信息。Json文本采用标准的创建方式,可以使用大多数的比较操作符进行比较操作,例如:=, <, <=, >, >=, <>, != 和 <=>。