Node.js MySQL Dónde


Seleccionar con un filtro

Al seleccionar registros de una tabla, puede filtrar la selección utilizando la instrucción "DÓNDE":

Ejemplo

Seleccione registro(s) con la dirección "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);
  });
});

Guarde el código anterior en un archivo llamado "demo_db_where.js" y ejecute el archivo:

Ejecute "demo_db_where.js"

C:\Users\Your Name>node demo_db_where.js

Lo que te dará este resultado:

[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]


Caracteres comodín

También puede seleccionar los registros que comienzan, incluyen o terminan con una letra o frase determinada.

Utilice el comodín '%' para representar cero, uno o varios caracteres:

Ejemplo

Seleccione registros donde la dirección comience con la 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);
  });
});

Guarde el código anterior en un archivo llamado "demo_db_where_s.js" y ejecute el archivo:

Ejecute "demo_db_where_s.js"

C:\Users\Your Name>node demo_db_where_s.js

Lo que te dará este resultado:

[
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]

Valores de consulta de escape

Cuando los valores de consulta son variables proporcionadas por el usuario, debe escapar de los valores.

Esto es para evitar inyecciones de SQL, que es una técnica común de piratería web para destruir o hacer un mal uso de su base de datos.

El módulo MySQL tiene métodos para escapar de los valores de consulta:

Ejemplo

Escape de los valores de consulta mediante el 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);
});

También puede usar a ?como marcador de posición para los valores que desea escapar.

En este caso, la variable se envía como segundo parámetro en el método query():

Ejemplo

Escape de los valores de consulta mediante el ? método de marcador de posición:

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

Si tiene varios marcadores de posición, la matriz contiene varios valores, en ese orden:

Ejemplo

Múltiples marcadores de posición:

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