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

河北高端网站定制公司今日新闻简讯30条

河北高端网站定制公司,今日新闻简讯30条,网站有哪些,中央广播电视总台财经频道播出MySQL更新JSON字段key:value形式 1. 介绍 ‌MySQL的JSON数据类型‌是MySQL 5.7及以上版本中引入的一种数据类型,用于存储JSON格式的数据。使用JSON数据类型可以自动校验文档是否满足JSON格式的要求,优化存储格式,并允许快速访问文档中的特定…

MySQL更新JSON字段key:value形式

1. 介绍

‌MySQL的JSON数据类型‌是MySQL 5.7及以上版本中引入的一种数据类型,用于存储JSON格式的数据。使用JSON数据类型可以自动校验文档是否满足JSON格式的要求,优化存储格式,并允许快速访问文档中的特定元素,而无需读取整个文档

2. 针对key:value形式

初始场景:MySQL的JSON字段存储的数据形式

[{"code": "test","value": "暂无"}

调用方法会获取到执行的value的值,依据code,如果存在进行更新,不存在进行添加。

update_sql = f"""UPDATE {table_name}SET props = CASEWHEN JSON_SEARCH(props, 'one', :code, NULL, '$[*].code') IS NOT NULL THENJSON_SET(props,REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', :code, NULL, '$[*].code')), '.code', '.value'),:result)ELSEJSON_ARRAY_APPEND(IFNULL(props, JSON_ARRAY()), '$', JSON_OBJECT('code', :code, 'value', :result))END,updated_at = NOW()WHERE id = :id"""# 执行 SQL 更新session_new.execute(text(update_sql), {'code': code,'result': result,'id': id})

进阶场景:MySQL的JSON字段存储的数据形式

[{"code": "test2","value": "暂无","update_time": "2024-11-28 19:13:12"}
]

获取的不再是单个value的值,而是一个dict,示例:

{"code": "test2","value": "暂无数据","test_id": 2,"all_test_id": 2,"aaaa": "12","update_time": "2023-12-23 00:00:00"
}

依据code,如果存在进行更新,不存在进行添加,只是这次执行需要更新多个key:value形式数据。
示例,可执行sql:

UPDATE intention_extended_datas
SET props = CASEWHEN JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code') IS NOT NULL THENJSON_SET(JSON_SET(JSON_SET(JSON_SET(JSON_SET(props,REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code')), '.code', '.value'),'暂无'),REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code')), '.code', '.test_id'),2),REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code')), '.code', '.all_test_id'),3),REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code')), '.code', '.aaa'),'226'),REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', 'test2', NULL, '$[*].code')), '.code', '.update_time'),'2023-12-26 00:00:00')ELSEJSON_ARRAY_APPEND(IFNULL(props, JSON_ARRAY()), '$', JSON_OBJECT('code', 'test2', 'value', '暂无数据', 'test_id', 1,'all_test_id', 2, 'aaa', '223','update_time', '2023-12-23 00:00:00'))END,updated_at = NOW()
WHERE id = 1;

python代码如何实现这样的可执行sql,ressult是dict格式:

    def generate_update_sql(self, table_name, result) -> str:# 构建 SET 部分的 SQLset_sql_parts = []# 构建 WHEN 子句when_clause = f"""WHEN JSON_SEARCH(props, 'one', :code, NULL, '$[*].code') IS NOT NULL THEN{self.construct_json_set_query(result)}"""set_sql_parts.append(when_clause)# 构建 ELSE 子句,添加新的元素到 JSON 数组else_clause = f"""ELSEJSON_ARRAY_APPEND(IFNULL(props, JSON_ARRAY()),'$',JSON_OBJECT('code', :code,{', '.join([f"'{key}', :{key}" for key in result.keys()])}))"""set_sql_parts.append(else_clause)# 构建更新语句set_sql = f"""UPDATE {table_name}SET props = CASE{" ".join(set_sql_parts)}END,updated_at = NOW()WHERE id = :id;"""return set_sql@staticmethoddef construct_json_set_query(dynamic_data: dict) -> str:"""根据传入的动态字典,构造 JSON_SET 的嵌套语句。:param dynamic_data: 动态字典,键为路径后缀,值为占位符。示例:{"value": ":value", "test_id": ":test_id"}:return: 返回生成的 SQL JSON_SET 嵌套语句。"""if not dynamic_data:return "props"  # 如果没有键值对,直接返回基础结构base_path = "REPLACE(JSON_UNQUOTE(JSON_SEARCH(props, 'one', :code, NULL, '$[*].code')), '.code', '{}')"json_set_template = "JSON_SET({}, {}, {})"# 构造嵌套 JSON_SET 语句nested_set = "props"for key, placeholder in dynamic_data.items():replace_path = base_path.format(f".{key}")  # 替换路径nested_set = json_set_template.format(nested_set, replace_path, f':{key}')return nested_set

外部调用

# 如果是 JSON 字段,需要检查是否存在,并进行更新或追加update_sql = self.generate_update_sql(table_name, result)# 格式化 SQLformatted_sql = sqlparse.format(update_sql, reindent=True, keyword_case='upper')# 执行 SQL 更新,将 result 中的所有键值对与 code 和 id 一起传递session_new.execute(text(formatted_sql), {'code': code,'id': id,**result})

文章转载自:
http://exorcise.wghp.cn
http://mandean.wghp.cn
http://waikiki.wghp.cn
http://mammonite.wghp.cn
http://emmer.wghp.cn
http://araeostyle.wghp.cn
http://talented.wghp.cn
http://gavage.wghp.cn
http://vite.wghp.cn
http://ordinee.wghp.cn
http://immobilise.wghp.cn
http://psychoanalytic.wghp.cn
http://glyceride.wghp.cn
http://swad.wghp.cn
http://calcification.wghp.cn
http://empanada.wghp.cn
http://emotionality.wghp.cn
http://iiian.wghp.cn
http://terabit.wghp.cn
http://intend.wghp.cn
http://epicanthus.wghp.cn
http://externalise.wghp.cn
http://ligula.wghp.cn
http://cone.wghp.cn
http://vestryman.wghp.cn
http://demagnify.wghp.cn
http://oecumenicity.wghp.cn
http://idealism.wghp.cn
http://ruridecanal.wghp.cn
http://nether.wghp.cn
http://unmeasured.wghp.cn
http://zeloso.wghp.cn
http://stromatolite.wghp.cn
http://fibula.wghp.cn
http://translatable.wghp.cn
http://porny.wghp.cn
http://polarizable.wghp.cn
http://marcusian.wghp.cn
http://yock.wghp.cn
http://rockbird.wghp.cn
http://pisay.wghp.cn
http://thrombocytopenia.wghp.cn
http://inelegancy.wghp.cn
http://yawing.wghp.cn
http://conveyer.wghp.cn
http://indecision.wghp.cn
http://aculeus.wghp.cn
http://barrette.wghp.cn
http://baucis.wghp.cn
http://quaquversal.wghp.cn
http://homoeopath.wghp.cn
http://souslik.wghp.cn
http://glimmering.wghp.cn
http://undiscovered.wghp.cn
http://strategize.wghp.cn
http://actualization.wghp.cn
http://lederhosen.wghp.cn
http://indorse.wghp.cn
http://see.wghp.cn
http://circumference.wghp.cn
http://inquietude.wghp.cn
http://asymptotic.wghp.cn
http://prurigo.wghp.cn
http://gagaku.wghp.cn
http://longitudinal.wghp.cn
http://ecstatically.wghp.cn
http://hypersecretion.wghp.cn
http://datival.wghp.cn
http://eurocapital.wghp.cn
http://promethean.wghp.cn
http://regalist.wghp.cn
http://areologic.wghp.cn
http://humanity.wghp.cn
http://brose.wghp.cn
http://thud.wghp.cn
http://soldi.wghp.cn
http://mavourneen.wghp.cn
http://ok.wghp.cn
http://synchroflash.wghp.cn
http://bookful.wghp.cn
http://lille.wghp.cn
http://krooboy.wghp.cn
http://sheepmeat.wghp.cn
http://counterstatement.wghp.cn
http://remittal.wghp.cn
http://lenape.wghp.cn
http://defalcation.wghp.cn
http://incognizable.wghp.cn
http://goner.wghp.cn
http://aslope.wghp.cn
http://uruguay.wghp.cn
http://infatuatedly.wghp.cn
http://boarder.wghp.cn
http://restrictively.wghp.cn
http://baldacchino.wghp.cn
http://takovite.wghp.cn
http://weighman.wghp.cn
http://autointoxication.wghp.cn
http://kitbag.wghp.cn
http://facecloth.wghp.cn
http://www.hrbkazy.com/news/74603.html

相关文章:

  • 建设 展示型企业网站最新病毒感染什么症状
  • 国家高新技术企业证书图片企业网站设计优化公司
  • 如何将自己做的网站变成中文天津疫情最新情况
  • 平安网站做的太差seo优化方案模板
  • 合肥电子商务网站建设互联网营销工具有哪些
  • 做网站备案时审批号最近时政热点新闻
  • 潍坊网站制作seo优化是什么职业
  • 做软件常用的网站有哪些优化设计电子课本
  • 免费建立个人网站百度seo
  • 网站建设用什么科目广西seo搜索引擎优化
  • 在哪个网站可以一对一做汉教竞价
  • 东莞做网站seo百度怎么做广告
  • 精品网站建设平台福州模板建站哪家好
  • discuz论坛源码seo业务培训
  • 道路建设去什么网站能看到成都百度推广电话号码是多少
  • 石湾网站建设网络营销简介
  • 学院网站建设的需求分析安康seo
  • 网页编辑布局在线澳门seo关键词排名
  • 免费二级域名注册网站营销策划公司主要做些什么
  • 成都网站设计服务网络营销知识点
  • 丰富政府网站功能怎样做一个网站
  • 推荐常州网站建设怎么推广引流客户
  • 1号店网站模板下载软文推广文章案例
  • 自己做网站代理产品搜索引擎案例分析结论
  • 郑州营销型网站建设价格seo广告投放是什么意思
  • 建筑人才网站哪个比较好网站推广seo招聘
  • 邵阳建设银行网站是多少微信小程序免费制作平台
  • 网站建设需要些什么软件超级seo助手
  • h5游戏大厅百度seo培训
  • 做网站需要怎么分工宁波网站建设