Node.js MySQL Onde
Selecione com um filtro
Ao selecionar registros de uma tabela, você pode filtrar a seleção usando a instrução "WHERE":
Exemplo
Selecione o(s) registro(s) com o endereço "Park Lane 38":
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
con.query("SELECT * FROM customers WHERE address = 'Park Lane 38'", function (err, result) {
if (err) throw err;
console.log(result);
});
});
Salve o código acima em um arquivo chamado "demo_db_where.js" e execute o arquivo:
Execute "demo_db_where.js"
C:\Users\Your Name>node demo_db_where.js
Que lhe dará este resultado:
[
{ id: 11, name: 'Ben', address: 'Park Lane 38'}
]
Caracteres curinga
Você também pode selecionar os registros que começam, incluem ou terminam com uma determinada letra ou frase.
Use o curinga '%' para representar zero, um ou vários caracteres:
Exemplo
Selecione os registros onde o endereço começa com a letra 'S':
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
con.query("SELECT * FROM customers WHERE address LIKE 'S%'", function (err, result) {
if (err) throw err;
console.log(result);
});
});
Salve o código acima em um arquivo chamado "demo_db_where_s.js" e execute o arquivo:
Execute "demo_db_where_s.js"
C:\Users\Your Name>node demo_db_where_s.js
Que lhe dará este resultado:
[
{ id: 8, name: 'Richard',
address: 'Sky st 331'},
{ id: 14, name: 'Viola', address: 'Sideway
1633'}
]
Escape de valores de consulta
Quando os valores de consulta são variáveis fornecidas pelo usuário, você deve escapar dos valores.
Isso é para evitar injeções de SQL, que é uma técnica comum de hackers na Web para destruir ou usar indevidamente seu banco de dados.
O módulo MySQL tem métodos para escapar de valores de consulta:
Exemplo
Escape de valores de consulta usando o mysql.escape()
método:
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address =
' + mysql.escape(adr);
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
Você também pode usar a ?
como um espaço reservado para os valores que deseja escapar.
Neste caso, a variável é enviada como o segundo parâmetro no método query():
Exemplo
Escape de valores de consulta usando o ?
método de espaço reservado:
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address =
?';
con.query(sql, [adr], function (err, result) {
if (err) throw err;
console.log(result);
});
Se você tiver vários espaços reservados, a matriz conterá vários valores, nessa ordem:
Exemplo
Vários marcadores de posição:
var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM
customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
if (err) throw err;
console.log(result);
});