MySQLi - WHERE子句

我们已经看到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 changed

mysql>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 changed

mysql> 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 :

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $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"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

示例输出应该是这样的 :

Connected successfully
Name: SAI