MySQL中JSON操作详解 JSON字段在查询中的处理方法

JSON EXTRACT 字段用于提取值,-> 比 JSON_EXTRACT 更快。
要检查数组,请使用 CONTAINS 并添加引号。
创建生成的列并添加索引比直接索引 JSON 字段更可靠。
8 .0 版本使用 JSON_TABLE 来处理复杂的嵌套。
不要扫描整个 JSON 表,因为它会很慢。
使用和连接检查多个条件。
你自己掂量一下吧。

mysql 一对多查询中返回成json 格式数据

创建用户表。
SQL 创建表用户( INT AUTO_INCREMENT 主键 ID, 名称 Varchar(5 0) );
创建订单表。
SQL 创建表命令( INT AUTO_INCREMENT 主键 ID, INT 用户 ID, order_detail VARCHAR(1 00), 外键 (user_id) 用户引用 (id) );
输入示例数据。
SQL 插入值用户(姓名)(“爱丽丝”),(“鲍勃”); INSERT INTO ORDERS(user_id, order_detail) VALUES (1 , 'Order1 '), (1 , 'Order2 '), (2 , 'Order3 ');
编写查询语句并以 JSON 格式返回数据。
SQL 选择 u.id AS user_id, u.name AS 用户名, JSON_ARRAYAGG(JSON_OBJECT( “order_id”,o.id, “订单详细信息”,o.订单详细信息 )) 作为订单 来自 用户你 加入 请求 o ON u.id = o.user_id 分组依据 u.id;
SpringBoot是使用SpringDataJPA实现的。
爪哇 导入 org.springframework.data.jpa.repository.JpaRepository; 导入org.springframework.data.jpa.repository.Query; 导入 org.springframework.stereotype.Repository; 导入java.util.List; 导入java.util.Map;
@Repository 公共接口 OrderRepository 扩展 JpaRepository { @Query("SELECT new org.example.UserOrderDTO(u.id, u.name, JSON_ARRAYAGG(JSON_OBJECT(o.id, o.orderDetail))) FROM User u JOIN Order o ON u.id = o.userId GROUP BY u.id") List> getUserOrders();
前端接收JSON数据。