- 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 } ]