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
如果想在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子句的字符串来设定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函数的musqli_query()及相同的SQL select带上where子句的命令来获取数据。
该函数用于执行SQL命令,然后通过PHP函数mysqli_fetch_array()来输出所有查询的数据。
实例
以下实例将从runoob_tbl表中返回使用runoob_author字段值为runoob.com的记录:
MySQL WHERE 子句测试:
$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 '
菜鸟教程 MySQL WHERE 子句测试
';
echo '
教程 ID | 标题 | 作者 | 提交日期 |
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
echo "
{$row['runoob_id']} "."
{$row['runoob_title']} "."
{$row['runoob_author']} "."
{$row['submission_date']} "."
";}
echo '
';// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>
-end-
嘀嗒一下
运维有惊喜!