Node.js MySQL Where
带有过滤器的选择
从表中选择记录时,可以使用 "WHERE" 语句过滤选择。
示例
选择地址为 "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);
});
});
运行示例 »
将上面的代码保存到名为 "demo_db_where.js" 的文件中,然后运行该文件。
运行 "demo_db_where.js"
C:\Users\Your Name>node demo_db_where.js
这将给出以下结果:
[
{ id: 11, name: 'Ben', address: 'Park Lane 38'}
]
通配符
您还可以选择以给定字母或短语开头、包含或结尾的记录。
使用 '%' 通配符表示零个、一个或多个字符。
示例
选择地址以字母 '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);
});
});
运行示例 »
将上面的代码保存到名为 "demo_db_where_s.js" 的文件中,然后运行该文件。
运行 "demo_db_where_s.js"
C:\Users\Your Name>node demo_db_where_s.js
这将给出以下结果:
[
{ id: 8, name: 'Richard', address: 'Sky st 331'},
{ id: 14, name: 'Viola', address: 'Sideway 1633'}
]
转义查询值
当查询值是用户提供的变量时,您应该转义这些值。
这样做是为了防止 SQL 注入,这是一种常见的 Web 攻击技术,用于破坏或滥用您的数据库。
MySQL 模块具有用于转义查询值的方法。
示例
使用 mysql.escape()
方法转义查询值。
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);
});
运行示例 »
您还可以使用 ?
作为要转义的值的占位符。
在这种情况下,变量作为 query() 方法的第二个参数发送。
示例
使用占位符 ?
方法转义查询值。
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);
});
运行示例 »
如果您有多个占位符,则数组包含多个值,按顺序排列。
示例
多个占位符
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);
});
运行示例 »