
- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送電子郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 從表中查詢資料
- Node.js - MySQL WHERE 子句
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 限制結果數量
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用工具模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - MySQL WHERE 子句
在 MySQL 中,WHERE 子句可以用於 SELECT、DELETE 和 UPDATE 查詢。WHERE 子句允許您為查詢返回的行指定搜尋條件。當在 Node.js 應用程式中使用 mysql 模組時,連線物件的 query() 方法執行查詢字串。要對 SELECT、UPDATE 或 DELETE 查詢應用篩選器,可以使用 WHERE 子句。本章解釋了在 Node.js 應用程式中使用 WHERE 子句的各種示例。
以下是 SELECT 語句中 WHERE 子句的語法:
SELECT select_list FROM table_name WHERE search_condition;
search_condition 是使用邏輯運算子 AND、OR 和 NOT 組合的一個或多個表示式的組合。
WHERE 子句中使用的各種運算子:
序號 | 運算子及描述 |
---|---|
1 | = 等於 (=) |
2 | > 大於 (>) |
3 | < 小於 (<) |
4 | >= 大於等於 (>=) |
5 | <= 小於等於 (<=) |
6 | != 不等於 (!= 或 <>) |
7 | BETWEEN 在特定範圍內 |
8 | LIKE 搜尋模式 |
9 | IN 為列指定多個可能的值 |
在 MySQL 中,謂詞是一個布林表示式,其計算結果為 TRUE、FALSE 或 UNKNOWN。SELECT 語句將包含結果集中滿足 search_condition 的任何行。
邏輯運算子
在下面的 Node.js 應用程式程式碼中,傳遞給 query() 方法的 SELECT 查詢字串使用 WHERE 子句來獲取工資超過 25000 元的員工記錄。
示例
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`SELECT name,salary FROM employee WHERE salary>25000;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; console.log(results); }); con.end(); });
輸出
[ RowDataPacket { name: 'Anil', salary: 30000 }, RowDataPacket { name: 'Meena', salary: 27000 } ]
WHERE 子句中的篩選條件可以是複合邏輯表示式,其中使用比較運算子 (>、<、>=、<=、==、=) 的各個邏輯表示式使用 AND、OR 或 NOT 運算子組合。
讓我們更改 query() 方法中的 SELECT 查詢,以便對 salary 欄位應用條件,使其大於 25000 且小於 30000。
示例
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`SELECT name,salary FROM employee WHERE salary>25000 and salary>30000;`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, results) { if (err) throw err; console.log(results); }); con.end(); });
輸出
[ RowDataPacket { name: 'Meena', salary: 27000 } ]
BETWEEN
BETWEEN 檢查特定欄位值是否落在給定範圍內。以下查詢字串獲取工資在 27000 到 30000 之間的員工。在上面的程式碼中,將 qry 變數更改為以下表達式,保持其餘程式碼不變。
示例
var qry =`SELECT name,salary FROM employee WHERE salary BETWEEN 27000 and 30000;`;
輸出
[ RowDataPacket { name: 'Anil', salary: 30000 }, RowDataPacket { name: 'Meena', salary: 27000 } ]
LIKE
LIKE 運算子如果值與指定的模式匹配,則計算結果為 TRUE。要形成模式,可以使用 % 和 _ 萬用字元。% 萬用字元匹配任何零個或多個字元的字串,而 _ 萬用字元匹配任何單個字元。
將查詢字串變數更改為以下內容。
var qry =`SELECT name,salary FROM employee WHERE name LIKE '%n%';`;
結果集將包括名稱中任何位置包含字母“n”的姓名。
[ RowDataPacket { name: 'Anil', salary: 30000 }, RowDataPacket { name: 'Meena', salary: 27000 } ]
IN
MySQL 還支援與 WHERE 子句一起使用的 IN 運算子。如果值與列表中的任何值匹配,則 IN 運算子返回 TRUE。
value IN (value1, value2,...)
將程式碼中的查詢字串更改為以下內容。
var qry =`SELECT name,salary FROM employee WHERE name IN ('Anil', 'Tina', 'Ravi');`;
這將返回結果集,其中包含在給定列表中找到名稱的行。
[ RowDataPacket { name: 'Ravi', salary: 25000 }, RowDataPacket { name: 'Anil', salary: 30000 } ]