php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > MYSQL数据库 >

MySQL WHERE 子句

时间:2019-03-21 19:34来源:未知 作者:admin 点击:
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。 语法 以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
 
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
 
语法
以下是 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:3306';  // 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, MYSQL_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);
?>
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐
  • mysql多久可以学会?
  • mysql算是比较好学的一种数据库了,相对于sqlserver和oracle绝对是容易的,而且相

  • mysql适合数据仓库吗?
  • 汇总各种来源的数据,可以创建一个中央仓库。通过分析和汇总业务数据报告,

  • mysql如何删除关联表
  • mysql数据库中,表与表之间进行关联之后,就不可随意的进行删除操作,否则会

  • 如何通过索引对MySQL优化
  • 数据库索引 数据库索引是一种提高表中操作速度的数据结构,每次应用程序在

  • MySQL 复制表
  • 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果

  • MySQL 临时表
  • MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接

  • MySQL 索引
  • MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速

  • MySQL ALTER命令
  • 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

  • MySQL 事务
  • MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中

  • MySQL 正则表达式
  • 在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。 MySQL 同样