我们已经看到SQL SELECT 命令从MySQLi表中获取数据.我们可以使用名为 WHERE 子句的条件子句来过滤掉结果.使用WHERE子句,我们可以指定一个选择条件来从表中选择所需的记录.
语法
这是SELECT命令的通用SQL语法WHERE子句从MySQLi表中获取数据 :
SELECT field1, field2,...fieldN table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....
你可以使用一个或多个用逗号分隔的表来使用WHERE子句包含各种条件,但WHERE子句是SELECT命令的可选部分.
您可以指定任何条件使用WHERE子句.
您可以使用 AND 或 OR 运算符指定多个条件.
WHERE子句可以与DELETE或UPDATE SQL命令一起使用来指定条件.
WHERE 子句的作用类似于任何编程语言中的if条件.此子句用于将给定值与MySQLi表中可用的字段值进行比较.如果来自outside的给定值等于MySQLi表中的可用字段值,则返回该行.
这是运算符列表,可以与 WHERE一起使用/b>子句.
假设字段A持有10而字段B持有20,然后是 :
运算符 | Description | 示例 |
---|---|---|
= | 检查两个操作数的值是否相等,如果是,则条件变为真. | (A = B)不是真的. |
!= | 支票如果两个操作数的值相等或不相等,如果值不相等则条件变为真. | (A!= B)为真. |
> | 检查左操作数的值是否大于右操作数的值,如果是则则条件变为真. | (A> B)不成立. |
< | 检查左操作数的值是否小于右操作数的值,如果是的然后条件变为真. | (A< B)为真. |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为是. | (A>= B)不成立. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为真. | (A<= B)为真. |
当你想从表中提取选定的行时,WHERE子句非常有用,尤其是当您使用 MySQLi加入时.联接将在另一章中讨论.
通常使用主键搜索记录以快速搜索.
如果给定条件与表中的任何记录都不匹配,则查询不会返回任何行.
从命令提示符中获取数据
这将使用带有WHERE子句的SQL SELECT命令从MySQLi表tutorials_inf中获取所选数据.
示例
以下示例将返回
root@host# mysql -u root -p password;Enter password:*******mysql> use TUTORIALS;Database changedmysql>SELECT * from tutorials_inf where name = 'sai';+----+------+| id | name |+----+------+| 1 | SAI |+----+------+1 row in set (0.00 sec)mysql>
除非对字符串执行 LIKE 比较,否则比较不区分大小写.您可以使用 BINARY 关键字使搜索大小写敏感,如下所示;
root@host# mysql -u root -p password;Enter password:*******mysql> use TUTORIALS;Database changedmysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';Empty set (0.02 sec)mysql>
使用PHP脚本获取数据:
您可以将与WHERE CLAUSE相同的SQL SELECT命令用于PHP函数 mysqli_query().
示例
以下示例将返回 tutorials_inf 表中的所有记录其名称是 sai :
'; $sql = 'SELECT * from tutorials_inf where name="sai"'; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { echo "Name: " . $row["name"]. "
"; } } else { echo "0 results"; } mysqli_close($conn);?>
示例输出应该是这样的 :
Connected successfullyName: SAI