選單
×
   ❮     
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 提供支援