Posteado el: 11/02/2009
por: Craftyman
Tags:
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@craftyman.net'),
('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@craftyman.net'
},
{
name : 'Maria',
email: 'maria@gmail.com'
},
{
name : 'Jose',
email: 'j0s3@hotmail.com'
},
{
name : 'Albert',
email: 'albertpr@yahoo.com'
}
]





August 10th, 2009 at 8:37 pm
[...] How to get MySQL to generate JSON | http://craftyman.net/mysql-to-json/ <blockquote> <pre> SELECT CONCAT( "[", GROUP_CONCAT( CONCAT("{name:'",`name`,"'"), CONCAT(",email:'",`email`,"'}") ) ,"]") AS json FROM users; [...]
December 13th, 2009 at 6:41 am
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;