菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Node.js MySQL WHERE 子句


带有过滤条件的 SELECT

从表中选择记录时,可以使用 "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 注入,SQL 注入是一种常见的网络攻击技术,用于破坏或滥用您的数据库。

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);
});
运行示例 »

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持