Menu
×
   ❮     
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


带有过滤器的选择

从表中选择记录时,可以使用 "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);
});
运行示例 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.