2015-08-01 2 views
1

У меня возникли проблемы с поиском, как получить данные из mysql запросов в функции обратного вызова. Например, у меня есть запрос следующим образом:Nodejs node-mysql query result data type

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) { 
    if (err) { 
     throw err; 
    } 
    else { 
     console.log(Type.of(result)); 
     console.log("card count is as: " + result.count); 
     console.log("Card count is: " + result["COUNT(*)"]); 
     console.log(result); 
    } 
}); 

Это печатает:

[Function: Array] 
card count is as: undefined 
Card count is: undefined 
[ { 'COUNT(*)': 3 } ] 

Что такое «[Функция: Array]» тип данных и как вы выбираете переменные из этого? Массив функций? Почему «result.count» не определен, хотя я в запросе использую объект AS.

Также как следующий запрос отличается от следующего ниже?

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, rows, fields) { 
}); 

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) { 
}); 

Когда я использую другую, а другую другую?

ответ

1

Обратный вызов с function (err, rows, fields) гораздо более подходит для выбора данных, с которыми вы работаете, и строки будут заполнены массивом массивов. Итак, в вашем случае rows[0]['COUNT(*)'] будет вашим счетом.

Для выбора с несколькими строками вы можете просмотреть результаты.

Как примечание стороны, я думаю, что вы имели в виду SELECT COUNT(*) AS count from card, который затем будет доступен гораздо проще, как rows[0].count

1

Изменить запрос

SELECT COUNT(*) AS count from card 

псевдоним столбца должен быть определен после выбора столбца, а не после from.

 Смежные вопросы

  • Нет связанных вопросов^_^