08.03.2019, 12:49
|
Новичок на форуме
|
|
Регистрация: 07.03.2019
Сообщений: 7
|
|
Как узнать количество строк в таблице Mysql на Javascript
Написал данный код, который достаёт из моей таблицы SQL все строки, в которых direction = 1
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('crdxims.db3');
let sql = `SELECT id id,
direction direction
FROM ACS_EVENT
WHERE direction = ?`;
let direction = 1
// first row only
db.each(sql, [direction], (err, row) => {
if (err) {
return console.error(err.message);
}
return row
? console.log(row.id, row.direction)
: console.log('No {id}');
});
// close the database connection
db.close( );
Мне надо, чтобы выводились не все строки, а количество этих самых строк с direction = 1. Как это можно сделать?
|
|
08.03.2019, 13:09
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от werter1995
|
Как это можно сделать?
|
Запрашивать требуемое:
SELECT COUNT(*) AS total FROM asc_event WHERE direction = ?
И sqlite, это не MySQL.
|
|
08.03.2019, 13:23
|
Новичок на форуме
|
|
Регистрация: 07.03.2019
Сообщений: 7
|
|
Сообщение от laimas
|
Запрашивать требуемое:
SELECT COUNT(*) AS total FROM asc_event WHERE direction = ?
И sqlite, это не MySQL.
|
Да, sqlite, затупил.
Так?
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('crdxims.db3');
let sql = `SELECT id id,
direction direction
FROM ACS_EVENT
WHERE direction = ?`
let direction = 1
let sum = `SELECT COUNT(*) AS total FROM asc_event WHERE direction = ?`
// first row only
db.each(sql, [sum], (err, row) => {
if (err) {
return console.error(err.message);
}
return row
? console.log(row.sum)
: console.log('No {sum}');
});
// close the database connection
db.close( );
Если так, то при запросе через Node.js количество строк не указывает, выводит просто пустую строку.
.
Если нет, то простите, туплю. Как тогда?
|
|
08.03.2019, 13:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Я не знаю Node.js, чего там и как я сказать не могу, но если вам нужно узнать только количество записей в таблице, то зачем вы получаете сами записи? Получить количество записей, это COUNT(*) AS алиас, и после запроса и выводите алиас, который и будет содержать количество записей в таблице.
|
|
08.03.2019, 13:46
|
Новичок на форуме
|
|
Регистрация: 07.03.2019
Сообщений: 7
|
|
Сообщение от laimas
|
Я не знаю Node.js, чего там и как я сказать не могу, но если вам нужно узнать только количество записей в таблице, то зачем вы получаете сами записи? Получить количество записей, это COUNT(*) AS алиас, и после запроса и выводите алиас, который и будет содержать количество записей в таблице.
|
При вот таком коде:
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('crdxims.db3');
let sql = `SELECT COUNT(*) AS total FROM ACS_EVENT WHERE direction = ?`
// first row only
db.each(sql, [total], (err, row) => {
if (err) {
return console.error(err.message);
}
return row
? console.log(row.total)
: console.log('No {total}');
});
// close the database connection
db.close( );
Выводит:
То есть модификатор не объявлен.
Если объявить его строчкой
let total
То выводит число 0.
Что конкретно нужно сделать, чтобы модификатор был объявлен?
Последний раз редактировалось werter1995, 08.03.2019 в 13:49.
|
|
08.03.2019, 13:50
|
Новичок на форуме
|
|
Регистрация: 07.03.2019
Сообщений: 7
|
|
Сообщение от werter1995
|
При вот таком коде:
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('crdxims.db3');
let sql = `SELECT COUNT(*) AS total FROM ACS_EVENT WHERE direction = ?`
// first row only
db.each(sql, [total], (err, row) => {
if (err) {
return console.error(err.message);
}
return row
? console.log(row.total)
: console.log('No {total}');
});
// close the database connection
db.close( );
Выводит:
То есть модификатор не объявлен.
Если объявить его строчкой
let total
То выводит число 0.
Что конкретно нужно сделать, чтобы модификатор был объявлен?
|
Блин, мой тупняк. Нашёл.
|
|
|
|