语法

以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

以下为操作符列表,可用于 WHERE 子句中。

下表中实例假定 A 为 10, B 为 20

操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
<>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
> 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
< 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
>= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
<= 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

如果我们想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。

使用主键来作为 WHERE 子句的条件查询是非常快速的。

如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。


从命令提示符中读取数据

我们将在SQL SELECT语句使用WHERE子句来读取MySQL数据表 runoob_tbl 中的数据:

实例

以下实例将读取 runoob_tbl 表中 runoob_author 字段值为 Sanjay 的所有记录:

SQL SELECT WHERE 子句

SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程';

输出结果:

MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

如下实例:

BINARY 关键字

mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='runoob.com'; Empty set (0.01 sec) mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM'; +-----------+---------------+---------------+-----------------+ | runoob_id | runoob_title | runoob_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | JAVA 教程 | RUNOOB.COM | 2016-05-06 | | 4 | 学习 Python | RUNOOB.COM | 2016-03-06 | +-----------+---------------+---------------+-----------------+ 2 rows in set (0.01 sec)

实例中使用了 BINARY 关键字,是区分大小写的,所以 runoob_author='runoob.com' 的查询条件是没有数据的。


使用PHP脚本读取数据

你可以使用 PHP 函数的 mysqli_query() 及相同的 SQL SELECT 带上 WHERE 子句的命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。

实例

以下实例将从 runoob_tbl 表中返回使用 runoob_author 字段值为 RUNOOB.COM 的记录:

MySQL WHERE 子句测试:

<?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn , "set names utf8"); // 读取 runoob_author 为 RUNOOB.COM 的数据 $sql = 'SELECT runoob_id, runoob_title, runoob_author, submission_date FROM runoob_tbl WHERE runoob_author="RUNOOB.COM"'; mysqli_select_db( $conn, 'RUNOOB' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>菜鸟教程 MySQL WHERE 子句测试<h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo "<tr><td> {$row['runoob_id']}</td> ". "<td>{$row['runoob_title']} </td> ". "<td>{$row['runoob_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; // 释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>

输出结果如下所示:

《零基础》MySQL WHERE 子句(十三)相关推荐

  1. 九宫怎么排列和使用_广告视频配音剪映零基础入门教程第二十三篇:剪辑之九宫格教程...

    朋友圈最火九宫格视频你们知道是怎样制作的吗?我们常常在玩朋友圈的时候想用九宫格照片,但是你们有没有遇到这种情况,想玩九宫格却发现找不到那么多能用的照片,那这时候怎么办呢?玩腻了平常图片的发法,今天我们 ...

  2. SQL零基础入门学习(十三)

    上一篇(SQL零基础入门学习(十二)) SQL 视图(Views) 视图是可视化的表. SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行 ...

  3. 零基础mysql项目实例_MySQL-零基础开发

    1.终端下连接mysql服务 mysql -uroot -p回车后输入设定的密码即可. 进去后每条命令结尾要带分号:退出命令exit 单行注释有两种:# 或 --空格.多行注释/* */ 2.基本命令 ...

  4. 零基础学Arcgis(十三)专题地图的编制

    写在前面的话: B站搜索"中图地信"便可观看全套71章节详细操作视频(有操作数据获取,同步学习) (一)页面布局设计 [1]启动ArcMap,新建空白地图文档: [2]打开[目录] ...

  5. 零基础学SQL(十三、事务)

     目录 前置建表 ​编辑 一.什么是事务 二.事务特性ACID 1.原子性(Atomicity) 2.一致性(Consistency) 3.隔离性(Isolation) 4.持久性(Durabilit ...

  6. 8小时8节零基础MySQL快速人门实验上机课

    第一次实验:数据库设计(1) 一.实训目的 (1)掌握E-R图设计的基本方法,能绘制局部E-R图,并集成全局E-R图 (2)将概念模型转换为关系模型 二.实验内容 1.设计图书借阅系统数据库--Lib ...

  7. Python零基础学习笔记(十三)—— if 和 if-else语句...

    if 语句 格式: if 表达式:语句(注意:if 和表达式之间必须有空格,语句之前必须有tab键,也就是4个空格) 逻辑:当程序执行到if语句时,首先会计算"表达式"的值如果&q ...

  8. SQL零基础入门学习(十四)

    上篇:SQL零基础入门学习(十三) SQL NULL 值 NULL 值代表遗漏的未知数据. 默认地,表的列可以存放 NULL 值. 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新 ...

  9. 零基础可以学python么

    零基础自然是可以学习python的,Python具有简单.易学.免费.开源.可移植.可扩展.面向对象等优点,斩获无数程序员的喜爱,也有了"人生苦短,我选Python"的名言. 近几 ...

最新文章

  1. vue2.0组件之间的通信
  2. CSS3菜单栏透明兼容问题
  3. 通过一个具体的例子学习Threadlocal Test
  4. jzoj5248-[NOIP2017提高A组模拟8.10]花花的聚会【倍增,树形dp】
  5. java查看weblogic服务器_java判断服务器是那种,例如区分tomcat和weblogic | 学步园
  6. 用Python一键生成炫酷九宫格图片,火了朋友圈
  7. windows 根据父进程pid查找所有子进程id(C++)
  8. matlab 元胞数组合并(fail)
  9. [Java] 蓝桥杯ALGO-125 算法训练 王、后传说
  10. 由中缀式转化为后缀式
  11. L2TP 配置实例——CALL LNS
  12. oracle 模式_Oracle实验--insert /*+APPEND*/与insert不同模式下产生redo大小
  13. VB小程序:生成十个不重复的随机数
  14. 局域网 访问计算机 软件,局域网查看工具
  15. mysql更改数据库密码
  16. 计算机基础知识excel视频教程,郭安定Excel2003全套教程
  17. JAVA基础(43)彻底理解cookie、session、token
  18. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第1课1.19节查找如何使用Illustrator的资源...
  19. python的符号怎么打_python plt可视化――打印特殊符号和制作图例代码
  20. 推荐5款让你相见恨晚的神级软件,把把直击心灵

热门文章

  1. 快捷方式修复_Mac上的屏幕截图不起作用该如何修复?
  2. 局部放大_Origin教程|巧用ZOOM功能做数据对比和快速绘制局部放大图
  3. datatable怎么根据两列分组_谈谈怎么做服务隔离
  4. UC浏览器电脑版怎么开启免费WiFi
  5. 360浏览器怎么查看保存的密码
  6. U盘装win7系统出现question(1808)的原因与解决方法
  7. java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
  8. springboot 配置多个请求服务代理
  9. XSSFWorkbook与HSSFWorkbook的区别
  10. Java核心类库篇1——简介