MySQL to JSON

MySQL to JSON

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'
    }
]

También te puede interesar

3 Comments

  1. links for 2009-08-10 « Talkabout
    ago 10, 2009 @ 20:37:36

    [...] How to get MySQL to generate JSON | http://tednologia.com/mysql-to-json/ <blockquote> <pre> SELECT CONCAT( "[", GROUP_CONCAT( CONCAT("{name:'",`name`,"'"), CONCAT(",email:'",`email`,"'}") ) ,"]") AS json FROM users; [...]

  2. Gustavo
    dic 13, 2009 @ 06:41:13

    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;

  3. dhamaso
    ene 26, 2011 @ 11:39:40

    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