Una mirada en profundidad a las funciones JSON_ARRAYAGG y JSON_OBJECT en MySQL

En la base de datos MySQL, el procesamiento de datos en formato JSON se ha vuelto cada vez más común. JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero que se puede utilizar para almacenar y representar datos estructurados. MySQL proporciona algunas funciones JSON potentes, dos de las funciones clave son JSON_ARRAYAGG y JSON_OBJECT. Este artículo profundizará en el propósito, la sintaxis y los ejemplos de estas dos funciones para ayudarlo a comprender mejor su funcionalidad y uso.

Función JSON_ARRAYAGG

JSON_ARRAYAGGLa función se utiliza para combinar varias filas de los resultados de la consulta en una matriz JSON. Esto es útil para resumir datos de varias filas en una consulta. La siguiente es la sintaxis básica de la función JSON_ARRAYAGG:

JSON_ARRAYAGG(expression)
  • expresión: la expresión o columna que se incluirá en la matriz.

Ejemplo

Podemos usar la función JSON_ARRAYAGG para fusionar todos los nombres de provincias en la tabla com_province en una matriz JSON:

# 查询省份表中所有的省份名称的JSON数组
select JSON_ARRAYAGG(province_name ) from com_province;

Esto devolverá una matriz JSON que contiene 31 provincias:

["北京", "天津", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省", "青海省", "宁夏回族自治区", "新疆维吾尔自治区"]

Función JSON_OBJECT

La función JSON_OBJECT se utiliza para crear un objeto JSON que contiene pares clave-valor específicos. Esto es útil para generar objetos JSON que contienen datos específicos. La siguiente es la sintaxis básica de la función JSON_OBJECT:

JSON_OBJECT(key1, value1, key2, value2, ...)
  • clave1, valor1, clave2, valor2, ...: pares clave-valor, la clave es una cadena y el valor puede ser cualquier expresión válida.

Ejemplo:

Utilice la función JSON_OBJECT para crear un objeto JSON que contenga el nombre y el código de la provincia.

# 使用JSON_OBJECT函数创建一个包含省份名称和省份编码的JSON对象
select JSON_OBJECT('省份名称',province_name,'省份编码',province_code ) from com_province;

_20230911225815.png

Ejemplos prácticos

Tenemos tres tablas, que almacenan información de provincia, información de ciudad e información de distrito administrativo respectivamente. Ahora necesitamos proporcionar al cliente datos json de provincias y ciudades. Podemos usar y JSON_ARRAYAGGpara JSON_OBJECTcompletar:

SELECT
	JSON_ARRAYAGG(
		JSON_OBJECT(
			'code',
			T1.province_code,
			'name',
			T1.province_name,

			'children',
			(
			SELECT
				JSON_ARRAYAGG( JSON_OBJECT( 'code', T2.city_code, 'name', T2.city_name,'children',
					(
			SELECT
				JSON_ARRAYAGG( JSON_OBJECT( 'code', T3.area_code, 'name', T3.area_name ) ) AS test3 
			FROM
				com_area T3 
			WHERE
				T3.city_code = T2.city_code ORDER BY T3.sort asc
			) 
			) ) AS test2 
			FROM
				com_city T2 
			WHERE
				T2.province_code = T1.province_code  ORDER BY T2.sort asc
			) 
		) 
	) AS test 
FROM
	com_province T1   ORDER BY  T1.sort asc

resultado:

_20230911231557.png

en conclusión

JSON_ARRAYAGGy JSON_OBJECTson herramientas poderosas en MySQL para procesar datos JSON. JSON_ARRAYAGGSe utiliza para fusionar datos de varias filas en una matriz JSON y JSON_OBJECTse utiliza para crear un objeto JSON que contiene pares clave-valor. Estas funciones le ayudan a manipular y consultar datos JSON en su base de datos de manera más eficiente para satisfacer una variedad de necesidades. Ya sea que esté desarrollando aplicaciones web o realizando análisis de datos, saber cómo utilizar estas funciones será de gran ayuda en su trabajo. Espero que este artículo le ayude a obtener una comprensión más profunda de JSON_ARRAYAGGsus JSON_OBJECTfunciones.

Supongo que te gusta

Origin blog.csdn.net/weixin_44002151/article/details/132819678
Recomendado
Clasificación