当前位置: 首页 > news >正文

电商网站建设前的市场分析内容手机网站建设知识

电商网站建设前的市场分析内容,手机网站建设知识,南昌企业网站开发,网络推广品牌营销公司写在前面 需要注意#xff0c;5.7以上版本才支持#xff0c;但如果是生产环境需要使用的话#xff0c;尽量使用8.0版本#xff0c;因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先…写在前面 需要注意5.7以上版本才支持但如果是生产环境需要使用的话尽量使用8.0版本因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先来准备一些测试数据 CREATE TABLE dept (id int(11) NOT NULL,dept varchar(255) DEFAULT NULL,json_value json DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;insert into dept VALUES(1,部门1,{deptName: 部门1, deptId: 1, deptLeaderId: 3}); insert into dept VALUES(2,部门2,{deptName: 部门2, deptId: 2, deptLeaderId: 4}); insert into dept VALUES(3,部门3,{deptName: 部门3, deptId: 3, deptLeaderId: 5}); insert into dept VALUES(4,部门4,{deptName: 部门4, deptId: 4, deptLeaderId: 5}); insert into dept VALUES(5,部门5,{deptName: 部门5, deptId: 5, deptLeaderId: 5});1json字段名-’$.json属性’ 通过json字段名-’$.json属性’语法格式可以访问到json中某个key的值以如下查询方式看下。 1.1用在DQL查询结果中 mysql select id,json_value-$.deptLeaderId from dept where id2; ---------------------------------- | id | json_value-$.deptLeaderId | ---------------------------------- | 2 | 4 | ---------------------------------- 1 row in set (0.01 sec)1.2用在DQL条件中 单条件 mysql select id from dept where json_value-$.deptLeaderId4; ---- | id | ---- | 2 | ---- 1 row in set (0.01 sec)和普通字段组合查询 mysql select id from dept where json_value-$.deptLeaderId4 and id1; ---- | id | ---- | 2 | ---- 1 row in set (0.01 sec)json多条件 mysql select id from dept where json_value-$.deptLeaderId4 and json_value-$.deptName like %部门%; ---- | id | ---- | 2 | ---- 1 row in set (0.00 sec)1.3用在DQL关联查询中 先准备数据 CREATE TABLE dept_leader (id int(11) NOT NULL,leaderName varchar(255) DEFAULT NULL,json_value json DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;insert into dept_leader VALUES(1,leader1,{name: 王一, id: 1, leaderId: 1}); insert into dept_leader VALUES(2,leader2,{name: 王二, id: 2, leaderId: 3}); insert into dept_leader VALUES(3,leader3,{name: 王三, id: 3, leaderId: 4}); insert into dept_leader VALUES(4,leader4,{name: 王四, id: 4, leaderId: 5}); insert into dept_leader VALUES(5,leader5,{name: 王五, id: 5, leaderId: 5});关联查询 mysql SELECT dept.id,dept_leader.id from dept,dept_leader WHERE dept.json_value-$.deptLeaderIddept_leader.json_value-$.id ; -------- | id | id | -------- | 1 | 3 | | 2 | 4 | | 3 | 5 | | 4 | 5 | | 5 | 5 | | 6 | 5 | | 7 | 5 | | 8 | 5 | -------- 8 rows in set (0.00 sec)2json_extract 语法格式json_extract(字段名,$.json字段名),用来从json字段中提取值如下 mysql select id,json_extract(json_value,$.deptName) as deptName from dept; ---------------------------------- | id | deptName | ---------------------------------- | 1 | 部门1 | ...mysql SELECT * FROM dept WHERE JSON_EXTRACT(json_value,$.deptName) like %部门%\G *************************** 1. row ***************************id: 1dept: 部门1 json_value: {deptId: 1, deptName: 部门1, deptLeaderId: 3} *************************** 2. row ***************************id: 2dept: 部门2 json_value: {deptId: 2, newData: 新增的数据, deptName: 新增的部门1111, deptLeaderId: 4} ...cx 3JSON_OBJECT() 语法格式JSON_OBJECT(k,v[,k,v]),用来转换指定数据为json object,如下 mysql select json_object(name, 张三, age, 99); ------------------------------------------ | json_object(name, 张三, age, 99) | ------------------------------------------ | {age: 99, name: 张三} | ------------------------------------------ 1 row in set (0.01 sec)4JSON_CONTAINS() 语法JSON_CONTAINS(target, candidate[, path])用来判断json格式中是否包含指定子对象其中子对象需要通过json_object()生成如下 mysql select * from dept WHERE JSON_CONTAINS(json_value, JSON_OBJECT(deptName,部门5))- ; -------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------- | 5 | 部门5 | {deptId: 5, deptName: 部门5, deptLeaderId: 5} | -------------------------------------------------------------------------- 1 row in set (0.01 sec)注意需要使用json_object转换为object。 添加如下数据看一个嵌套json对象的例子 insert into dept VALUES(6,部门9,{deptName: {dept:de,depp:dd}, deptId: 5, deptLeaderId: 5});判断嵌套对象是否存在 mysql SELECT * from dept WHERE JSON_CONTAINS(json_value-$.deptName,JSON_OBJECT(depp,dd)); --------------------------------------------------------------------------------------------- | id | dept | json_value | --------------------------------------------------------------------------------------------- | 6 | 部门9 | {deptId: 5, deptName: {depp: dd, dept: de}, deptLeaderId: 5} | --------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)mysql SELECT * from ( SELECT *,json_value-$.deptName as deptName FROM dept ) t WHERE JSON_CONTAINS(deptName,JSON_OBJECT(depp,dd)); ...5JSON_ARRAY() 创建json数组如下 mysql select json_array(pingpong,羽毛球,篮球); --------------------------------------------- | json_array(pingpong,羽毛球,篮球) | --------------------------------------------- | [pingpong, 羽毛球, 篮球] | ---------------------------------------------mysql select json_array(json_object(name, 张三), 篮球, json_object(name, 李四)); ------------------------------------------------------------------------------------ | json_array(json_object(name, 张三), 篮球, json_object(name, 李四)) | ------------------------------------------------------------------------------------ | [{name: 张三}, 篮球, {name: 李四}] | ------------------------------------------------------------------------------------ 1 row in set (0.00 sec)json格式化看下 5.1判断数组是否是否包含某子数组 准备数据 insert into dept VALUES(7,部门9,{deptName: [1,2,3], deptId: 5, deptLeaderId: 5}); insert into dept VALUES(7,部门9,{deptName: [5,6,7], deptId: 5, deptLeaderId: 5});mysql SELECT * from dept WHERE JSON_CONTAINS(json_value-$.deptName,JSON_ARRAY(1)); -------------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------------- | 7 | 部门9 | {deptId: 5, deptName: [1, 2, 3], deptLeaderId: 5} | -------------------------------------------------------------------------------- 1 row in set (0.05 sec) 6JSON_TYPE() 获取类型 mysql SELECT json_value-$.deptName ,JSON_TYPE(json_value-$.deptName) as type from dept; -------------------------------------- | json_value-$.deptName | type | -------------------------------------- | 部门1 | STRING | | 新增的部门1111 | STRING | | 部门3 | STRING | | 部门4 | STRING | | 部门5 | STRING | | {depp: dd, dept: de} | OBJECT | | [1, 2, 3] | ARRAY | | [5, 6, 7] | ARRAY | --------------------------------------7JSON_KEYS() 获取文档中所有的key如下 mysql SELECT JSON_KEYS(json_value),json_value FROM dept where id2\G *************************** 1. row *************************** JSON_KEYS(json_value): [deptId, newData, deptName, deptLeaderId]json_value: {deptId: 2, newData: 新增的数据, deptName: 新增的部门1111, deptLeaderId: 4} 1 row in set (0.01 sec)8JSON_SET() 更新或者是添加kv无责插入有则更新语法格式JSON_SET(json_doc, path, val[, path, val] …),如下 key存在时更新 mysql select * from dept where id1; -------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------- | 1 | 部门1 | {deptId: 1, deptName: 部门1, deptLeaderId: 3} | -------------------------------------------------------------------------- 1 row in set (0.00 sec)mysql update dept set json_valueJSON_SET(json_value, $.deptName, 部门1_更新后) where id1; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql select * from dept where id1; ------------------------------------------------------------------------------------ | id | dept | json_value | ------------------------------------------------------------------------------------ | 1 | 部门1 | {deptId: 1, deptName: 部门1_更新后, deptLeaderId: 3} | ------------------------------------------------------------------------------------ 1 row in set (0.00 sec)key不存在时插入 mysql select * from dept where id1; ------------------------------------------------------------------------------------ | id | dept | json_value | ------------------------------------------------------------------------------------ | 1 | 部门1 | {deptId: 1, deptName: 部门1_更新后, deptLeaderId: 3} | ------------------------------------------------------------------------------------ 1 row in set (0.00 sec)mysql update dept set json_valueJSON_SET(json_value, $.deptAddr, 赢创动力4楼) where id1; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql select * from dept where id1; -------------------------------------------------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------------------------------------------------- | 1 | 部门1 | {deptId: 1, deptAddr: 赢创动力4楼, deptName: 部门1_更新后, deptLeaderId: 3} | -------------------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)一个key不存在一个key存在 mysql select * from dept where id1; -------------------------------------------------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------------------------------------------------- | 1 | 部门1 | {deptId: 1, deptAddr: 赢创动力4楼, deptName: 部门1_更新后, deptLeaderId: 3} | -------------------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)mysql update dept set json_valueJSON_SET(json_value, $.deptAddr, 八维学院, $.newKey, newKey的value) where id1; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql select * from dept where id1; -------------------------------------------------------------------------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------------------------------------------------------------------------- | 1 | 部门1 | {deptId: 1, newKey: newKey的value, deptAddr: 八维学院, deptName: 部门1_更新后, deptLeaderId: 3} | -------------------------------------------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)9JSON_INSERT() 语法格式JSON_INSERT(json_doc, path, val[, path, val] …),插入文档当值已经存在时忽略如下 mysql select * from dept where id2; -------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------- | 2 | 部门2 | {deptId: 2, deptName: 部门2, deptLeaderId: 4} | -------------------------------------------------------------------------- 1 row in set (0.01 sec)mysql update dept set json_valueJSON_INSERT(json_value, $.deptId, 已存在不更新, $.addr, 西二旗) where id2; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql select * from dept where id2; ----------------------------------------------------------------------------------------------- | id | dept | json_value | ----------------------------------------------------------------------------------------------- | 2 | 部门2 | {addr: 西二旗, deptId: 2, deptName: 部门2, deptLeaderId: 4} | ----------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)10JSON_REPLACE() 语法格式JSON_REPLACE(json_doc, path, val[, path, val] …)更新而不新增文档如下 mysql update dept set json_valueJSON_REPLACE(json_value, $.deptName, 部门2_新名称, $.notExitsKey, 不会替换因为不存在) where id2; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql select * from dept where id2; --------------------------------------------------------------------------------------------------------- | id | dept | json_value | --------------------------------------------------------------------------------------------------------- | 2 | 部门2 | {addr: 西二旗, deptId: 2, deptName: 部门2_新名称, deptLeaderId: 4} | --------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)11JSON_REMOVE() 语法格式JSON_REMOVE(json_doc, path[, path] …),删除文档 mysql select * from dept where id3; -------------------------------------------------------------------------- | id | dept | json_value | -------------------------------------------------------------------------- | 3 | 部门3 | {deptId: 3, deptName: 部门3, deptLeaderId: 5} | -------------------------------------------------------------------------- 1 row in set (0.00 sec)mysql update dept set json_valueJSON_REMOVE(json_value, $.depeName, $.deptLeaderId) where id3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql select * from dept where id3; ----------------------------------------------------- | id | dept | json_value | ----------------------------------------------------- | 3 | 部门3 | {deptId: 3, deptName: 部门3} | ----------------------------------------------------- 1 row in set (0.00 sec)12JSON_SEARCH 语法格式JSON_SEARCH(json_docone_or_allsearch_str [escape_char [path] ...]), 获取指定文档出现的位置如果没有则返回NULL。 12.1官方例子 准备数据 mysql SET j [abc, [{k: 10}, def], {x:abc}, {y:bcd}]; Query OK, 0 rows affected (0.00 sec)mysql select j; --------------------------------------------------------- | j | --------------------------------------------------------- | [abc, [{k: 10}, def], {x:abc}, {y:bcd}] | --------------------------------------------------------- 1 row in set (0.01 sec)查询 mysql SELECT JSON_SEARCH(j, one, abc); // 第二参数查询终止条件设置为one即只查询一个 ------------------------------- | JSON_SEARCH(j, one, abc) | ------------------------------- | $[0] | ------------------------------- 1 row in set (0.01 sec)mysql SELECT JSON_SEARCH(j, all, abc); // 第二个参数查询终止条件设置为all即查询所有匹配的 ------------------------------- | JSON_SEARCH(j, all, abc) | ------------------------------- | [$[0], $[2].x] | ------------------------------- 1 row in set (0.01 sec)mysql SELECT JSON_SEARCH(j, all, ghi); // 全局匹配不存在的会返回NULL ------------------------------- | JSON_SEARCH(j, all, ghi) | ------------------------------- | NULL | ------------------------------- 1 row in set (0.00 sec)mysql SELECT JSON_SEARCH(j, all, 10); // 全局匹配10返回具体位置的具体key ------------------------------ | JSON_SEARCH(j, all, 10) | ------------------------------ | $[1][0].k | ------------------------------ 1 row in set (0.01 sec)指定路径搜索 mysql SELECT JSON_SEARCH(j, all, 10, NULL, $); ----------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $) | ----------------------------------------- | $[1][0].k | -----------------------------------------mysql SELECT JSON_SEARCH(j, all, 10, NULL, $[*]); -------------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $[*]) | -------------------------------------------- | $[1][0].k | --------------------------------------------mysql SELECT JSON_SEARCH(j, all, 10, NULL, $**.k); --------------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $**.k) | --------------------------------------------- | $[1][0].k | ---------------------------------------------mysql SELECT JSON_SEARCH(j, all, 10, NULL, $[*][0].k); ------------------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $[*][0].k) | ------------------------------------------------- | $[1][0].k | -------------------------------------------------mysql SELECT JSON_SEARCH(j, all, 10, NULL, $[1]); -------------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $[1]) | -------------------------------------------- | $[1][0].k | --------------------------------------------#指定搜索路径为数组中第二个元素内的第一个元素 mysql SELECT JSON_SEARCH(j, all, 10, NULL, $[1][0]); ----------------------------------------------- | JSON_SEARCH(j, all, 10, NULL, $[1][0]) | ----------------------------------------------- | $[1][0].k | -----------------------------------------------mysql SELECT JSON_SEARCH(j, all, abc, NULL, $[2]); --------------------------------------------- | JSON_SEARCH(j, all, abc, NULL, $[2]) | --------------------------------------------- | $[2].x | ---------------------------------------------模糊匹配 mysql SELECT JSON_SEARCH(j, all, %a%); ------------------------------- | JSON_SEARCH(j, all, %a%) | ------------------------------- | [$[0], $[2].x] | -------------------------------mysql SELECT JSON_SEARCH(j, all, %b%); ------------------------------- | JSON_SEARCH(j, all, %b%) | ------------------------------- | [$[0], $[2].x, $[3].y] | -------------------------------# 指定搜索路径$[0] abc mysql SELECT JSON_SEARCH(j, all, %b%, NULL, $[0]); --------------------------------------------- | JSON_SEARCH(j, all, %b%, NULL, $[0]) | --------------------------------------------- | $[0] | ---------------------------------------------# $[2] {x:abc} mysql SELECT JSON_SEARCH(j, all, %b%, NULL, $[2]); --------------------------------------------- | JSON_SEARCH(j, all, %b%, NULL, $[2]) | --------------------------------------------- | $[2].x | ---------------------------------------------# $[1] [{k: 10}, def] 模糊匹配无结果 mysql SELECT JSON_SEARCH(j, all, %b%, NULL, $[1]); --------------------------------------------- | JSON_SEARCH(j, all, %b%, NULL, $[1]) | --------------------------------------------- | NULL | ---------------------------------------------mysql SELECT JSON_SEARCH(j, all, %b%, , $[1]); ------------------------------------------- | JSON_SEARCH(j, all, %b%, , $[1]) | ------------------------------------------- | NULL | -------------------------------------------mysql SELECT JSON_SEARCH(j, all, %b%, , $[3]); ------------------------------------------- | JSON_SEARCH(j, all, %b%, , $[3]) | ------------------------------------------- | $[3].y | -------------------------------------------12.2实际例子 在日常开发过程中如果需要使用JSON_SEARCH查询的话需要搭配IS NOT NULL来获取符合条件的数据如果是返回是NULL则说明不存在反之存在所以对于返回的具体位置信息我们一般是使用不到的准备数据如下 Create Table: CREATE TABLE user (id int(11) unsigned NOT NULL AUTO_INCREMENT,name varchar(64) NOT NULL COMMENT 名字,age int(4) unsigned NOT NULL COMMENT 年龄,info text COMMENT 补充信息,PRIMARY KEY (id),UNIQUE KEY name (name) ) ENGINEInnoDB DEFAULT CHARSETutf8 COMMENT用户表INSERT INTO user (name, age, info) VALUES (suhw, 23, {phone:12312123434,language:[c,java,go]}); INSERT INTO user (name, age, info) VALUES (bob, 20, {phone:18912123434,language:[c,c,go,php]});查询会java和go语言的数据 mysql select * from user where json_search(info, all, go) is not null and json_search(info, all, java) is not null; ----------------------------------------------------------------------- | id | name | age | info | ----------------------------------------------------------------------- | 1 | suhw | 23 | {phone:12312123434,language:[c,java,go]} | ----------------------------------------------------------------------- 1 row in set (0.00 sec)写在后面 参考文章列表 【MySQL】对JSON数据操作全网最全 。 MySQL - json_search 小结 。
http://www.pierceye.com/news/779043/

相关文章:

  • 网站访问过程服装定制行业的未来和趋势
  • 做拍卖网站多少钱怎么推广一个产品
  • 郑州做公司网站怎么做类似美团的网站吗
  • 网站建设服务公网站备案中是什么意思
  • 书店网站建设网站被k 如何恢复
  • 柳州做网站的企业瓯北网站制作
  • 南京建设银行网站蓬莱市住房和规划建设管理局网站
  • 网站前端用的到ps做教育app的网站有哪些
  • 有没有兼职做网站的低价自适应网站建设
  • 文成网站建设所有关键词
  • 吉林市做网站哪家好建网站的方法
  • 北京做网站的怎样用自己的服务器建设网站
  • 镇江建设局网站开发公司采购招聘
  • 阿里云编辑建设好的网站凡客官网登录入口网址
  • 后盾网原创实战网站建设教程北京app网站建设价格
  • 简述网站建设过程步骤wordpress英文建站
  • 网站开发 mvc有孩子做的网站
  • 自己做的网站如何推广wordpress 主题页脚
  • 数据库型网站怎么把电脑当服务器做网站
  • 东莞网站建设品牌公司如何做电子书网站
  • 免费学做美食视频网站有哪些百度是国企还是央企
  • wordpress 网站关键词设置wordpress 上传主机
  • h5电子商务网站如何查询关键词的搜索量
  • 网站导航栏兼容性网站建设的主要技术指什么软件
  • 如何抄袭网站400靓号手机网站建设
  • 大兴网站建设价格怎样建设好网站
  • 三维家是在网站上做还是在app上国内新闻最新5条
  • 呼伦贝尔网站设计wordpress如何关闭主题
  • 苏州网站制作网站建设淮安住房和城乡建设厅网站
  • 房产中介网站wordpress模板mip