查询json字段,返回包含指定属性的json数据

sxldfang 2018-06-29 09:51:45


mysql> create table me(id int auto_increment primary key, m json, c json);
Query OK, 0 rows affected (0.04 sec)

mysql> insert into me(m,c)values('{"xm":"ldf","xb":"nan","mz":"han","hf":true,"sg":168}','["xm","mz"]');
Query OK, 1 row affected (0.00 sec)

mysql> select * from me;
+----+----------------------------------------------------------------+--------------+
| id | m | c |
+----+----------------------------------------------------------------+--------------+
| 1 | {"hf": true, "mz": "han", "sg": 168, "xb": "nan", "xm": "ldf"} | ["xm", "mz"] |
+----+----------------------------------------------------------------+--------------+
1 row in set (0.00 sec)


m字段包含多个键值对,返回c字段给出的键值对。
若希望得到下面的数据,这里应该如何写查询语句,注意c字段的值是不确定的




+----+----------------------------+--------------+
| id | mmm | ccc |
+----+----------------------------+--------------+
| 1 | {"mz": "han", "xm": "ldf"} | ["xm", "mz"] |
+----+----------------------------+--------------+
...全文
1287 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天地炫舞 2018-07-04
  • 打赏
  • 举报
回复
直接查询出数据应该就可以了吧,为什么要执着的查出一个json,根据条件查询出数据并不难,使用mysql5.7对json类型的操作函数即可。三楼不愧为数据库大佬,佩服,佩服,函数写的很强
zjcxc 2018-07-04
  • 打赏
  • 举报
回复
然后调用函数实现查询
SELECT *, f(m, c) FROM me;
zjcxc 2018-07-04
  • 打赏
  • 举报
回复
自己写个函数,类似这样
CREATE FUNCTION f(m json, c json)
RETURNS json
BEGIN
SELECT c->'$[0]', JSON_LENGTH(c), 1 INTO @name, @len, @pos;
SET @r:=CONCAT('{', @name, ':', JSON_EXTRACT(m, CONCAT('$.',@name)), '}');
WHILE @pos < @len DO
SELECT CONCAT('$.', JSON_EXTRACT(c, CONCAT('$[',@pos,']'))), @pos+1 INTO @name, @pos;
SELECT JSON_INSERT( @r, @name, JSON_EXTRACT(m, @name) ) INTO @r;
END WHILE;
RETURN @r;
END
sxldfang 2018-07-01
  • 打赏
  • 举报
回复
引用
你看下 网上的MySQL 出来json


没看粗来啊~~~
  • 打赏
  • 举报
回复
你看下 网上的MySQL 出来json
内容概要:本文研究了基于粒子群算法的风电-水电(抽水蓄能)联合优化调度问题,旨在通过智能优化算法实现新能源与储能系统的协同调度,提升电力系统运行效率与稳定性。研究采用粒子群优化(PSO)算法对风电和抽水蓄能电站的出力进行联合优化,以最小化系统运行成本、减少弃风弃电、提高可再生能源消纳能力为目标,构建了包含风电出力不确定性、水电站水量平衡、抽水蓄能机组运行约束在内的多目标优化模型,并通过Matlab编程实现算法求解与仿真验证。文中详细探讨了算法参数设置、收敛性分析及优化结果的合理性,展示了该方法在实际电力系统调度中的应用潜力与工程价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源调度、智能优化算法应用的工程技术人员。; 使用场景及目标:①应用于含大规模风电接入的电力系统中,实现风电与抽水蓄能的协调调度;②为电力系统经济调度、可再生能源消纳、储能优化配置等研究提供算法支持与仿真案例;③作为智能优化算法在能源系统中应用的教学与研究参考资料。; 阅读建议:读者应结合Matlab代码与文中模型描述,理解算法实现细节,建议在学习过程中动手调试代码,尝试修改目标函数或约束条件以观察优化结果变化,从而深入掌握粒子群算法在能源调度中的应用方法。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧