EN
Node.js - MySQL LIMIT
0
points
In this article, we would like to show you how to use SQL LIMIT in Node.js.
Note: at the end of this article you can find database preparation SQL queries, you will also find an example of a more parameterized query there.
const mysql = require('mysql');
const connection = mysql.createConnection({ // gets connection with database
host: 'localhost', // '127.0.0.1'
user: 'root',
password: 'password',
database: 'database_name',
});
connection.connect((error) => {
if (error) throw error;
const query = 'SELECT * FROM `users` LIMIT ?';
const value = 2;
connection.query(query, [value], (error, result) => { // sends queries
connection.end(); // closes connection
if (error) throw error;
console.log(connection.sql); // SELECT * FROM `users`
}); // LIMIT 2
});
Output:
[
{ id: 1, name: 'John', role: 'admin' },
{ id: 2, name: 'Chris', role: 'moderator' }
]
With OFFSET:
const mysql = require('mysql');
const connection = mysql.createConnection({ // gets connection with database
host: 'localhost', // '127.0.0.1'
user: 'root',
password: 'password',
database: 'database_name',
});
connection.connect((error) => {
if (error) throw error;
const query = 'SELECT * FROM `users` ' +
'LIMIT ? OFFSET ?'; // or shorter 'LIMIT 1, 2'
const values = [2, 1];
connection.query(query, values, (error, result) => { // sends queries
connection.end(); // closes connection
if (error) throw error;
console.log(connection.sql); // SELECT *
}); // FROM `users`
}); // LIMIT 2 OFFSET 1
Output:
[
{ id: 2, name: 'Chris', role: 'moderator' },
{ id: 3, name: 'Kate', role: 'user' }
]
Database preparation
create_tables.sql
file:
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`role` VARCHAR(15) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
insert_data.sql
file:
INSERT INTO `users`
(`name`, `role`)
VALUES
('John', 'admin'),
('Chris', 'moderator'),
('Kate', 'user'),
('Denis', 'moderator');
More parameterized query
// ...
connection.connect((error) => {
if (error) throw error;
const query = `SELECT * FROM ??
LIMIT ?`;
const values = ['users', 2];
connection.query(query, values, (error, result) => { // sends queries
connection.end(); // closes connection
if (error) throw error;
console.log(connection.sql); // SELECT * FROM `users`
}); // LIMIT 2
});
The names of columns and tables can be placed in the query by a double question mark ??
.