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