2012-07-10 67 views
7

Tengo el siguiente código.node.js-MySQL COUNT el número de registros

var mysql = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : '', 
    database : 'test' 
}); 
connection.connect(); 

var userdata = '24'; 

var sql = 'SELECT COUNT(*) FROM names WHERE age = ?' 
connection.query(sql, [userdata], function(err, rows, fields) { 
    if (err) throw err; 
    console.log('Query result: ', rows); 
}); 

connection.end(); 

que desea obtener el número total de registros de la tabla de 'nombres', donde 'edad' = 24. Recibo el siguiente en mis Node.js símbolo del sistema.

Query result: [ { 'COUNT(*)': '14' } ] 

Mi pregunta es cómo almacenar este número 14 en una variable para su uso posterior.

Sé que puedo hacer esto simplemente cambiando la línea 'sql' a

var sql = 'SELECT * FROM names WHERE age = ?' 

y luego la línea de la consola para

console.log('Query result: ', rows.length); 

Pero aún hay otra manera?

+0

'rows [0] ['COUNT (*)']'? Estás tratando con SQL puro, así que supongo que no tienes otra opción. – freakish

+0

No funciona. Gracias por ayudar. – Shekhar

Respuesta

25

reescribir la

var sql = 'SELECT COUNT(*) FROM names WHERE age = ?' 

para que parezca, es decir .:

var sql = 'SELECT COUNT(*) AS namesCount FROM names WHERE age = ?' 

A continuación, obtendrá Resultado de la consulta: [ { 'namesCount': '14' } ].

por lo que ahora usted tiene

rows[0].namesCount 

¿Suficientemente bueno?

+0

Muchas gracias, funciona. :) – Shekhar