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