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

网站建设 广告推广关键词上首页软件

网站建设 广告推广,关键词上首页软件,招聘 人才招聘,自己做个购物网站MySQL 从 v5.7.8 开始支持 JSON 数据类型。 JSON 数据类型和传统数据类型的操作还是有很大的差别,需要单独学习掌握。好在 JSON 数据类型的学习成本不算太高,只是在 SQL 语句中扩展了 JSON 函数,操作 JSON 数据类型主要是对函数的学习。 新…

MySQLv5.7.8 开始支持 JSON 数据类型。

JSON 数据类型和传统数据类型的操作还是有很大的差别,需要单独学习掌握。好在 JSON 数据类型的学习成本不算太高,只是在 SQL 语句中扩展了 JSON 函数,操作 JSON 数据类型主要是对函数的学习。

新建数据库

CREATE TABLE t(id INT, data json, PRIMARY KEY (id));

插入数据

新增 JSON 文档

函数描述
JSON_ARRAY创建 JSON 数组
JSON_OBJECT创建 JSON 对象

插入数据可以通过字符串的方式直接插入或者用 JSON_ARRAYJSON_OBJECT 函数来构造数据。

插入数组

INSERT INTO t (id, data) VALUES (1, '[1, 2, 3]');
INSERT INTO t (id, data) VALUES (2, JSON_ARRAY(1, 2, 3));

插入对象

INSERT INTO t (id, data) VALUES (3, '{"a": 1, "b": 2}');
INSERT INTO t (id, data) VALUES (4, JSON_OBJECT("a", 1, "b", 2, "c", 3));
INSERT INTO t (id, data) VALUES (5, '{"a": "abc", "b": {"c": "dad"}, "c": {"b": "aaa"}}');

修改数据

修改 JSON 文档

函数描述
JSON_SET当 Key 存在时修改,当 Key 不存在时新增
JSON_INSERT当 Key 不存在时新增,当 Key 存在时不做任何变动
JSON_REPLACE当 Key 存在时更新,当 Key 不存在时不做任何变动
JSON_ARRAY_INSERT在数组末尾处追加新元素
JSON_ARRAY_APPEND在数组指定下标处插入新元素
JSON_MERGE_PATCH合并 JSON 数组或对象
JSON_MERGE_PRESERVE合并 JSON 数组或对象

JSON_SET$ 表示整个 JSON 文档,通过指定对象属性或数组下标的方式修改数据,当 key 存在时修改反之则新增。

UPDATE t SET data = '[1, 20, 30]' WHERE id = 1;
UPDATE t SET data = JSON_SET(data, '$.c', 30, '$.d', 40) WHERE id = 4;
UPDATE t SET data = JSON_INSERT(data, '$.c', 3) WHERE id = 4;
UPDATE t SET data = JSON_REPLACE(data, '$.c', 3) WHERE id = 4;
UPDATE t SET data = JSON_ARRAY_INSERT(data, '$[0]', 0) WHERE id = 1;
UPDATE t SET data = JSON_ARRAY_APPEND(data, '$', 4) WHERE id = 1;

JSON_MERGE_PATCHJSON_MERGE_PRESERVE 都对 JSON 数组或对象进行合并操作,二者用法相同只是合并逻辑有所不同,具体的详情和细节可在文末参考链接中寻找。

删除数据

删除 JSON 文档

函数描述
JSON_REMOVE当 Key 存在时删除,当 Key 不存在时不做任何变动
UPDATE t SET data = JSON_REMOVE(data, '$.c', '$.d') WHERE id = 4;

查询数据

查询 JSON 文档

函数描述
JSON_CONTAINS判断源数据是否包含某个 JSON 数组或对象,包含返回 1, 否则返回 0
JSON_CONTAINS_PATH判断源数据某个路径下是否包含某个 JSON 数组或对象,包含返回 1, 否则返回 0
JSON_SEARCH指定关键字搜索 JSON 数组或对象,可以限制查找范围条件,支持 %、_、*、** 通配符,结果返回为 JSON 值的路径
SELECT JSON_CONTAINS(data, '{"b": 2}') FROM t WHERE id = 3;  // 1
SELECT JSON_CONTAINS(data, '{"c": 3}') FROM t WHERE id = 3;  // 0

第二个参数是控制返回数据的条数,参数如果是 one 只返回一条,参数如果是 all 则返回全部。

SELECT JSON_CONTAINS_PATH(data, 'one', '$.b', '$.c') FROM t WHERE id = 3;  // 1
SELECT JSON_CONTAINS_PATH(data, 'all', '$.b', '$.c') FROM t WHERE id = 3;  // 0

LIKE 一样,在字符串关键字的通过用 %_ 在所有节点的值中匹配。

SELECT JSON_SEARCH(data, 'one', '%a%') FROM t WHERE id = 5;  // $.a
SELECT JSON_SEARCH(data, 'all', '%a%') FROM t WHERE id = 5;  // ["$.a", "$.b.c", "$.c.b"]

还可以对条件限制查找范围。

SELECT JSON_SEARCH(data, 'all', '%a%', NULL, '$.b') FROM t WHERE id = 5;  // "$.b.c"

查找范围还可使用通配符,** 是递归匹配所有节点下的值。

SELECT JSON_SEARCH(data, 'all', '%a%', NULL, '$**.b') FROM t WHERE id = 5;  // ["$.b.c", "$.c.b"]

在实际开发中,一般 JSON_SEARCH 用的是最多的,而且大部分情况是作为搜索条件出现的,例如:

SELECT * FROM `templates_data` WHERE `template_id`=4 AND data -> '$**.value' LIKE '%内蒙古%'
SELECT * FROM `templates_data` WHERE `template_id`=4 AND JSON_SEARCH(data, 'all', '%内蒙古%', null, '$**.value')
SELECT * FROM `templates_data` WHERE `template_id`=4 AND JSON_CONTAINS(data, JSON_OBJECT('value', '内蒙古'))

**注意:**只有 JSON_EXTRACTJSON_SEARCH 中的 path 才支持通配符。

操作文档

操作 JSON 文档

函数描述
JSON_QUOTE将 String 类型转成 JSON 类型
JSON_UNQUOTE将 JSON 类型转成 String 类型
JSON_KEYS以数组的方式返回 JSON 文档中的 Key
JSON_EXTRACT以字符串或数组的方式返回 JSON 文档中的 Value,支持通配符
JSON_LENGTH返回 JSON 文档的长度
JSON_DEPTH返回 JSON 文档的最大深度
JSON_TYPE返回 JSON 文档值的类型
JSON_VALID判断 JSON 文档是否合法
SELECT JSON_QUOTE('{"a": 1, "b": 2, "c": 3}');          // "{\"a\": 1, \"b\": 2, \"c\": 3}"
SELECT JSON_UNQUOTE('{"a": 1, "b": 2, "c": 3}');        // {"a": 1, "b": 2, "c": 3}
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}');           // ["a", "b", "c"]
SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b'); // 2
SELECT JSON_LENGTH('{"a": 1, "b": 2, "c": 3}', '$.b');  // 1
SELECT JSON_DEPTH('{"a": 1, "b": 2, "c": 3}');          // 2
SELECT JSON_TYPE('{"a": 1, "b": 2, "c": 3}');           // OBJECT
SELECT JSON_VALID('{"a": 1, "b": 2, "c": 3}');          // 1

参考链接:
https://www.sjkjc.com/mysql-ref/json_array/
https://www.cnblogs.com/xyj179/p/11451593.html


文章转载自:
http://whencesoever.rtkz.cn
http://arrestor.rtkz.cn
http://undissolvable.rtkz.cn
http://xvi.rtkz.cn
http://deadee.rtkz.cn
http://norris.rtkz.cn
http://smoggy.rtkz.cn
http://nuppence.rtkz.cn
http://erin.rtkz.cn
http://piggle.rtkz.cn
http://revere.rtkz.cn
http://nonconformance.rtkz.cn
http://anticholinergic.rtkz.cn
http://estipulate.rtkz.cn
http://ecology.rtkz.cn
http://ambulacral.rtkz.cn
http://ease.rtkz.cn
http://paroxysmic.rtkz.cn
http://ochrea.rtkz.cn
http://sunderland.rtkz.cn
http://granth.rtkz.cn
http://underlip.rtkz.cn
http://theravadin.rtkz.cn
http://kilometric.rtkz.cn
http://dynamite.rtkz.cn
http://synchro.rtkz.cn
http://contemptuous.rtkz.cn
http://sega.rtkz.cn
http://spiculum.rtkz.cn
http://oiling.rtkz.cn
http://heteroecism.rtkz.cn
http://sciagraph.rtkz.cn
http://gaming.rtkz.cn
http://reversi.rtkz.cn
http://unmovable.rtkz.cn
http://glib.rtkz.cn
http://hypochlorous.rtkz.cn
http://semitic.rtkz.cn
http://chromogen.rtkz.cn
http://sporting.rtkz.cn
http://unwinking.rtkz.cn
http://ambiversion.rtkz.cn
http://fescue.rtkz.cn
http://preamplifier.rtkz.cn
http://cryptanalyze.rtkz.cn
http://midsize.rtkz.cn
http://khond.rtkz.cn
http://anticyclone.rtkz.cn
http://geophone.rtkz.cn
http://hejaz.rtkz.cn
http://oysterroot.rtkz.cn
http://chicano.rtkz.cn
http://sensualize.rtkz.cn
http://fieldstone.rtkz.cn
http://miry.rtkz.cn
http://reckon.rtkz.cn
http://lachrymator.rtkz.cn
http://metaraminol.rtkz.cn
http://philogynous.rtkz.cn
http://protoplasmic.rtkz.cn
http://anchoveta.rtkz.cn
http://oedema.rtkz.cn
http://phillip.rtkz.cn
http://pustular.rtkz.cn
http://compare.rtkz.cn
http://died.rtkz.cn
http://infirm.rtkz.cn
http://algidity.rtkz.cn
http://armipotent.rtkz.cn
http://falsetto.rtkz.cn
http://usar.rtkz.cn
http://gan.rtkz.cn
http://alcides.rtkz.cn
http://seducible.rtkz.cn
http://sibilation.rtkz.cn
http://alienate.rtkz.cn
http://countryfolk.rtkz.cn
http://camaraderie.rtkz.cn
http://aquanautics.rtkz.cn
http://handsel.rtkz.cn
http://versatilely.rtkz.cn
http://seeming.rtkz.cn
http://unnoticed.rtkz.cn
http://marimba.rtkz.cn
http://underside.rtkz.cn
http://centaurus.rtkz.cn
http://galoche.rtkz.cn
http://campanology.rtkz.cn
http://jugulate.rtkz.cn
http://citole.rtkz.cn
http://esl.rtkz.cn
http://downslope.rtkz.cn
http://bate.rtkz.cn
http://arrowhead.rtkz.cn
http://melioration.rtkz.cn
http://depreciable.rtkz.cn
http://nawa.rtkz.cn
http://prehistory.rtkz.cn
http://unfathomed.rtkz.cn
http://beating.rtkz.cn
http://www.dt0577.cn/news/127592.html

相关文章:

  • wordpress 添加友情seo站长工具查询系统
  • 如何建网站挣钱百度app下载链接
  • 织梦网站地图html怎么做品牌宣传策略有哪些
  • wordpress插件分享显示图片seo索引擎优化
  • html怎么做网站网络推广服务商
  • 甘肃省交通建设项目招投标中心网站人工智能培训机构哪个好
  • 海淀网站建设公司百度百家号官网登录
  • 做资讯网站需要什么条件怎么知道自己的域名
  • 淘宝网站推广怎么做最近几天的新闻大事
  • 企业有域名怎么做网站网上商城网站开发
  • 网站建设公司天津最新军事新闻 今日 最新消息
  • 河南省建设工程信息网站东莞网站制作十年乐云seo
  • 免费建站软件哪个好最吸引人的引流话术
  • 建一个独立网站多少钱东莞营销网站建设推广
  • 餐饮公司网站制作文案写作软件app
  • 宁波模板建站多少钱丁的老头seo博客
  • wordpress极速主题国外网站seo免费
  • 沈阳正规制作网站公司怎么弄一个自己的网站
  • 做网站怎么返回首页国外免费域名申请
  • WordPress如何发布到github班级优化大师app下载
  • 网站不备案不能访问吗关键词优化
  • 用二级域名做网站流量精灵官网
  • 威海做企业网站公众号运营
  • 郑州那里能设计网站怎么做线上销售
  • 建设资格执业注册中心网站58同城发布免费广告
  • 做宠物网站需要实现什么功能搜索指数的数据来源是什么
  • 空间设计图片百度 seo 工具
  • 找事情做的网站移动优化课主讲:夫唯老师
  • 网站制作banner 素材seo基本步骤
  • 贵阳网站建设设计公司国外推广渠道平台