Example code for converting Mysql query result set into JSON data

Example code for converting Mysql query result set into JSON data

Mysql converts query result set into JSON data Preface Student table Student score table Query the scores of each subject of a single student (convert to object JSON string and concatenate with commas) Convert the scores of each subject of a single student into an array JSON string Use the array string as value and set the key Joint query of two tables (final SQL, each student's score in each subject) Final result

Preface

We often have such a requirement, a pair of related tables, a one-to-many relationship, use a SQL statement to query all the records of the two tables, for example: a student table, a student's score table, we want to use a SQL statement to query the scores of each student in each subject;

Student Table

CREATE TABLE IF NOT EXISTS `student`(
 `id` INT UNSIGNED AUTO_INCREMENT,
 `name` VARCHAR(100) NOT NULL
 PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO student( id, name ) VALUES ( 1, '张三' );
INSERT INTO student( id, name ) VALUES ( 2, 'Li Si' );

Student transcript

CREATE TABLE IF NOT EXISTS `score`(
 `id` INT UNSIGNED AUTO_INCREMENT,
 `name` VARCHAR(100) NOT NULL
 `student_id` INT(100) NOT NULL,
 `score` VARCHAR(100) NOT NULL
 PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO score( id, name, student_id, score) VALUES ( 1, 'Mathematics', 1, '95.5' );
INSERT INTO score( id, name, student_id, score) VALUES ( 2, 'Chinese', 1, '99.5' );
INSERT INTO score( id, name, student_id, score) VALUES ( 3, 'Mathematics', 2, '95.5' );
INSERT INTO score( id, name, student_id, score) VALUES ( 4, 'Chinese', 2, '88' );

Query the scores of each subject of a single student (convert to object JSON string and concatenate with commas)

SELECT GROUP_CONCAT(JSON_OBJECT( 
'id',id,'name',name,'student_id',student_id, 'score', score)) as scores FROM score where student_id = 1;
## Query results## {"id": 1, "name": "Mathematics", "student_id": 1, "score": "95.5"},{"id": 2, "name": "Chinese", "student_id": 1, "score": "99.5"}

Convert a single student's grades into an array JSON string

SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT( 
'id',id,'name',name,'student_id',student_id, 'score', score)), ']') as scores FROM score where student_id = 1
## Query results## [{"id": 1, "name": "Mathematics", "student_id": 1, "score": "95.5"},{"id": 2, "name": "Chinese", "student_id": 1, "score": "99.5"}]

Use the array string as value and set the key

SELECT CONCAT('{"scoreData":[', GROUP_CONCAT(JSON_OBJECT( 
'id',id,'name',name,'student_id',student_id, 'score', score)), ']}') as scores FROM score where student_id = 1
## Query results## {"scoreData": [{"id": 1, "name": "Mathematics", "student_id": 1, "score": "95.5"},{"id": 2, "name": "Chinese", "student_id": 1, "score": "99.5"}]}

Joint query of two tables (final SQL, each student's grades in each subject)

SELECT id, name,
(SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT( 
'id',id,'name',name,'student_id',student_id, 'score', score)), ']') as scores FROM score WHERE student_id = stu.id) AS scores
from student stu
## [{"id": 1, "name": "Mathematics", "student_id": 1, "score": "95.5"},{"id": 2, "name": "Chinese", "student_id": 1, "score": "99.5"}]

Final Result

ID NAME SCORES
1 Zhang San [{“id”: 1, “name”: “数学”, “student_id”: 1, “score”: “95.5”},{“id”: 2, “name”: “语文”, “student_id”: 1, “score”: “99.5”}]
2 Li Si [{“id”: 3, “name”: “Mathematics”, “student_id”: 1, “score”: “95.5”},{“id”: 4, “name”: “Chinese”, “student_id”: 1, “score”: “88”}]

This is the end of this article about converting MySQL query result sets to JSON data. For more relevant MySQL result set conversion to JSON data, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Mysql directly queries the data in the stored Json string
  • MySQL json format data query operation
  • Python query mysql, return json instance
  • Store JSON strings in Mysql and query according to conditions

<<:  Semantic web pages XHTML semantic markup

>>:  Docker completely deletes private library images

Recommend

Native js canvas to achieve a simple snake

This article shares the specific code of js canva...

How to quickly query 10 million records in Mysql

Table of contents Normal paging query How to opti...

In-depth analysis of the Tomcat server of Centos 7 system

Table of contents 1. The origin of tomcat 1. Tomc...

A little-known JS problem: [] == ![] is true, but {} == !{} is false

console.log( [] == ![] ) // true console.log( {} ...

Detailed installation and use of docker-compose

Docker Compose is a Docker tool for defining and ...

Use of Linux chkconfig command

1. Command Introduction The chkconfig command is ...

Tutorial on processing static resources in Tomcat

Preface All requests in Tomcat are handled by Ser...

Why the CSS attribute value clear:right does not work in detail

Using the clear property to clear floats is a comm...

Comprehensive understanding of HTML basic structure

Introduction to HTML HyperText Markup Language: H...

11 Reasons Why Bootstrap Is So Popular

Preface Bootstrap, the most popular front-end dev...

Simple steps to implement H5 WeChat public account authorization

Preface Yesterday, there was a project that requi...

Detailed process of installing and configuring MySQL and Navicat prenium

Prerequisite: Mac, zsh installed, mysql downloade...

IE6 distortion problem

question: <input type="hidden" name=...