PHP MySQL 逻辑运算符

本教程解释了如何在 PHP 中使用 WHERE 子句和 SELECT 查询以及 MySQL 逻辑运算符(例如 BETWEEN、IN、AND、OR 等)从数据库中选择数据。 我们将使用 WHERE 子句和带有运算符的 SELECT 查询来过滤 MySQL 数据库表中的数据。

MySQL 逻辑运算符

MySQL 支持以下逻辑运算符:

全部如果所有子查询值都满足条件,则为 TRUE
如果由 AND 分隔的所有条件都为 TRUE,则为 TRUE
任何如果任何子查询值满足条件,则为 TRUE
之间如果操作数在比较范围内,则为 TRUE
存在如果子查询返回一条或多条记录,则为 TRUE
如果操作数等于表达式列表之一,则为 TRUE
如果操作数与模式匹配,则为 TRUE
不是如果条件不为真,则显示一条记录
或者如果由 OR 分隔的任何条件为 TRUE,则为 TRUE
一些如果任何子查询值满足条件,则为 TRUE

MySQL 运算符 (来源 – w3schools)

在本指南中,我们将仅讨论四个运算符(即 BETWEEN、IN、AND 和 OR)的用法。

出于演示目的,我创建了一个名为 “销售量” 在一个名为的 MySQL 数据库中 “我的公司” 有以下记录。

ID姓名数数
5洗发水10
2牛奶20
3图书14
4巧克力45
612
1烹饪气体40

来自销售表的记录

查看 MySQL 数据库中的表记录

小心: 在 XAMPP 中,数据库和表名不区分大小写。 它将仅将大写/小写视为小写。

如果您尚未创建数据库和表,请参阅以下指南。

  • 在 XAMPP 中使用 PHP 创建 MySQL 数据库和表

编写 PHP 代码的步骤

1. 在您的 PHP 代码中指定服务器名称、用户名、密码和数据库名称。

2. 使用创建连接 mysqli_connect() 功能。

代码:

$connection = mysqli_connect($server_name, $user_name, $password,$database_name);

3. 指定 SQL 查询以通过条件从表中使用 BETWEEN、IN AND 和 OR 运算符选择特定或所有列记录。

4. 将选定的结果存储到一个名为的变量中 “最终的” 使用 mysqli_query() 功能。 它将连接和查询作为参数。

代码:

mysqli_query($connection, $query);

5.“最终的” 变量使用 mysqli_num_rows() 功能。

6. 关闭连接使用 mysqli_close() 功能。

代码:

mysqli_close($connection);

让我们继续看看如何从 MySQL 数据库表中选择和过滤数据 之间, , , 和 或者 运营商。

使用 BETWEEN 运算符从 MySQL 数据库表中选择数据的 PHP 代码

BETWEEN 运算符用于返回两个给定值之间存在的行。 它将采用第一个值,然后是 AND 运算符和第二个值。

BETWEEN 运算符将返回列中存在且存在于给定范围内的所有值(第一个值 – 第二个值)。

SQL 查询语法:

SELECT column1,column2,.,column n from table_name WHERE column_name BETWEEN value1 AND value2

示例代码:

在这个 example,我们将选择值,

  • ID 柱子 1之间4,
  • 数数 柱子 34 之间100.

创建一个名为的纯文本文件 select.php 在下面 /htdocs 包含以下内容的文件夹。

小心: 如果您使用 Linux,则 文档 文件夹将在 /opt/lampp/ 目录。 如果您使用的是 Windows,则 文档 通常会在 C:xampp 文件夹。

<?php
//specify the server name
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//select all columns such that id was in the range of 1 and 4
$query = "SELECT * from sales where id  BETWEEN 1 AND 4";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//new line
echo "<br>";
echo "<br>";

//select all columns such that count was in the range of 34 and 100
$query1 = "SELECT * from sales where count  BETWEEN 34 AND 100";

#get the result
$final1 = mysqli_query($connection, $query1);

if (mysqli_num_rows($final1) > 0) {
 //get the output of each row
  while($j = mysqli_fetch_assoc($final1)) {
      //get all columns
    echo "id: " . $j["id"]. "  ----> name: " . $j["name"]."  ----> count: " . $j["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

打开您的网络浏览器并导航到 https://localhost/select.php 网址。 您将看到所有的值 ID 柱子 1之间4,并且从 数数 柱子 34 之间100.

使用 BETWEEN 运算符从 MySQL 数据库表中选择数据

使用 IN 运算符从 MySQL 数据库表中选择数据的 PHP 代码

IN 运算符用于获取给定值列表中存在的值。 它将采用括号 () 中以逗号分隔的值列表。 所以它将返回 list-() 中存在的所有值。

SQL 查询语法:

SELECT column1,column2,.,column n from table_name WHERE column_name IN (value1,value2,…,value n)

示例代码:

在这个 example,我们将得到值,

  • ID 值可以位于的列(1,3,6),
  • 姓名 值可以在的列 (“巧克力“,””)。
<?php
//specify the server name
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//select all columns such that id was in 1,3,6
$query = "SELECT * from sales where id  IN (1,3,6)";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//new line
echo "<br>";
echo "<br>";

//select all columns such that name was Chocos,Eggs
$query1 = "SELECT * from sales where name  IN ('Chocos','Eggs')";

#get the result
$final1 = mysqli_query($connection, $query1);

if (mysqli_num_rows($final1) > 0) {
 //get the output of each row
  while($j = mysqli_fetch_assoc($final1)) {
      //get all columns
    echo "id: " . $j["id"]. "  ----> name: " . $j["name"]."  ----> count: " . $j["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

打开您的网络浏览器并将其指向 https://localhost/select.php 网址。 您将看到来自的值 ID 值所在的列 1,3, 和 6 并从 姓名 值所在的列”巧克力“ 和 ””。

使用 IN 运算符从 MySQL 数据库表中选择数据使用 IN 运算符从 MySQL 数据库表中选择数据

使用 AND 运算符从 MySQL 数据库表中选择数据的 PHP 代码

AND 运算符用于在两个条件都为 True 时获取值。 它将接受两个条件并检查条件,如果两者都为True,则将返回行,否则没有结果。

SQL 查询语法:

SELECT column1,column2,.,column n from table_name WHERE column_name operator value AND column_name operator value;

示例代码:

在这个 example,我们将选择所有的列,

  • ID大于 2 数少于 30,
  • 姓名巧克力 ID4.
<?php
//specify the server name and here it is localhost
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//select all columns such that id greater than 2 and count less than 30
$query = "SELECT * from sales where id>2 AND count<30";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//new line
echo "<br>";
echo "<br>";

//select all columns such that name is Chocos and id is 4
$query1 = "SELECT * from sales where name="Chocos" AND id=4";

#get the result
$final1 = mysqli_query($connection, $query1);

if (mysqli_num_rows($final1) > 0) {
 //get the output of each row
  while($j = mysqli_fetch_assoc($final1)) {
      //get all columns
    echo "id: " . $j["id"]. "  ----> name: " . $j["name"]."  ----> count: " . $j["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

打开您的网络浏览器并将其指向 https://localhost/select.php 网址。

使用 AND 运算符从 MySQL 数据库表中选择数据使用 AND 运算符从 MySQL 数据库表中选择数据

如您所见,列中的值 ID大于 2数少于 30, 和 姓名巧克力ID4 被显示。

使用 OR 运算符从 MySQL 数据库表中选择数据的 PHP 代码

OR 运算符用于在任何条件为 True 时获取值。 它需要两个条件并检查条件,如果任何一个为True,则返回行,否则将没有结果。

SQL 查询语法:

SELECT column1,column2,.,column n from table_name WHERE column_name operator value OR column_name operator value;

示例代码:

在这个 example,我们将选择所有的列

  • id 大于 2 或者 数少于 30,
  • 名称是 Chocos 或 id 是 4。
<?php
//specify the server name and here it is localhost
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//select all columns such that id greater than 2 or count less than 30
$query = "SELECT * from sales where id>2 OR count<30";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//new line
echo "<br>";
echo "<br>";

//select all columns such that name is Chocos or id is 4
$query1 = "SELECT * from sales where name="Chocos" OR id=4";

#get the result
$final1 = mysqli_query($connection, $query1);

if (mysqli_num_rows($final1) > 0) {
 //get the output of each row
  while($j = mysqli_fetch_assoc($final1)) {
      //get all columns
    echo "id: " . $j["id"]. "  ----> name: " . $j["name"]."  ----> count: " . $j["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

打开您的网络浏览器并将其指向 https://localhost/select.php 网址。

使用 OR 运算符从 MySQL 数据库表中选择数据使用 OR 运算符从 MySQL 数据库表中选择数据

结论

在本教程中,我们讨论了如何使用 MySQL 逻辑运算符(如 BETWEEN、IN、AND、OR 等)以及 PHP 中的 WHERE 子句和 SELECT 查询来过滤 MySQL 数据库表中的数据。 我们提供 example 每个运营商的代码。 您可以根据您的要求修改代码并在您的项目中使用它们。