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);
});