| 
	| 
	
	| 
		
	| 
			
			 
			
				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.
 
 Что конкретно нужно сделать, чтобы модификатор был объявлен?
 |  
	
 Блин, мой тупняк. Нашёл. |  |  
 
 
 
 |  |