2012-07-10 34 views
7

Tôi có mã sau đây.node.js-MySQL COUNT số lượng hồ sơ

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(); 

Tôi muốn nhận tổng số bản ghi từ bảng 'tên' trong đó 'tuổi' = 24. Tôi nhận được thông báo sau trên lời nhắc lệnh node.js của mình.

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

Câu hỏi của tôi là cách lưu trữ số này 14 trong biến để sử dụng tiếp.

Tôi biết tôi có thể làm điều này chỉ bằng cách thay đổi dòng 'sql' để

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

và sau đó giao diện điều khiển dòng để

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

Nhưng vẫn còn đó một cách khác?

+0

'hàng [0] ['COUNT (*)']'? Bạn đang đối phó với SQL thuần túy, vì vậy tôi đoán bạn không có lựa chọn nào khác. – freakish

+0

Nó không hoạt động. Cảm ơn bạn đã giúp đỡ. – Shekhar

Trả lời

25

Viết lại

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

Để trông giống như, tức là .:

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

Sau đó, bạn sẽ nhận được truy vấn kết quả: [ { 'namesCount': '14' } ].

vì vậy bây giờ bạn có

rows[0].namesCount 

Đủ tốt?

+0

Cảm ơn rất nhiều, nó hoạt động. :) – Shekhar

Các vấn đề liên quan