MySQL to JSON

3
67

MySQL to JSON no es mas que una manera de ahorrar codificación del lado del servidor y también ayudar a disminuir el tiempo valioso de respuesta.

La manera mas simple y con mejor rendimiento si se quiere trabajar con JSON seria que la misma bd te devolviera los resultados en dicho formato.

Usando las funciones CONCAT() y GROUP_CONCAT() lograriamos construir el JSON directamente desde la consulta SQL.

Ejemplo

Para este ejemplo construiremos una tabla sencilla de usuarios(para variar)

CREATE TABLE `user`(
	`id`    int not null auto_increment,
        `name`  varchar(100),
        `email` varchar(50),
        PRIMARY KEY(id)
) ENGINE = InnoDB;

Luego insertaremos unos cuantos registros.

INSERT INTO `user` (`name`, `email`) VALUES
('Cesar', 'cesar@tednologia.com'),
('Maria', 'maria@gmail.com'),
('Jose', 'j0s3@hotmail.com'),
('Albert','albertpr@yahoo.com');

Finalmente realizaremos la consulta que nos traera el JSON.

SELECT
    CONCAT( "[",
        GROUP_CONCAT(
            CONCAT("{name:'",`name`,"'"),
            CONCAT(",email:'",`email`,"'}")
        )
    ,"]")
AS json FROM users;

resultado:

[
    {
        name : 'Cesar',
        email: 'cesar@tednologia.com'
    },
    {
        name : 'Maria',
        email: 'maria@gmail.com'
    },
    {
        name : 'Jose',
        email: 'j0s3@hotmail.com'
    },
    {
        name : 'Albert',
        email: 'albertpr@yahoo.com'
    }
]

3 COMMENTS

  1. No falta una coma?
    1. SELECT
    2. CONCAT( “[“,
    3. GROUP_CONCAT(
    4. CONCAT(“{name:'”,`name`,”‘”),
    5. CONCAT(“,email:'”,`email`,”‘},”) **
    6. )
    7. ,”]”)
    8. AS json FROM users;

  2. genial!!! me gusto el tutorial aun que actualmente existe json_encode y json_decode esta es una manera ingeniosa de realizar un json directamente desde la db

Comments are closed.