MySQL WHERE 子句

MySQL WHERE 子句限制了 SELECT 语句返回的记录或行的数量。这意味着只有当 WHERE 关键字或子句后面的条件为 TRUE 时,SELECT 语句才会返回记录。

让我举一个例子来演示 MySQL WHERE 子句在实际中的功能。例如,我们要从亚马逊商店订购一件衬衫。当我们输入衬衫到搜索栏时,它会显示成千上万件衬衫。为了定制搜索结果,我们必须使用过滤器,例如性别、价格范围在 50 美元到 100 美元之间、品牌 = Levis 或 River Island 等。一旦应用了上述过滤器,它将只显示符合上述要求的衬衫。

让我向您展示内部发生了什么。这意味着具有 WHERE 子句的 SELECT 查询(针对亚马逊)。它会是这样的:

SELECT Product_Name, Size, Brand, Price, Discount
FROM Products_table
WHERE Product_Name = 'Shirts' AND
      Gender = 'Male' AND
      Brand = 'Levis' OR 'River Island' AND 
      Price BETWEEN 50 AND 100

MySQL WHERE 子句语法

带有 WHERE 子句的 SELECT 语句如下所示。

SELECT [Column Name 1], [Column Name 2], ...., [Column Name N]
FROM Source_Table
WHERE Conditions
  • 列名:来自表的列的数量。可以是一个或多个。
  • Source_Table:数据库中存在的表。使用 JOIN 来连接多个表。
  • 条件:在这里,我们必须提供过滤器或条件。如果条件为 TRUE,则 SELECT 语句才会返回记录。

MySQL WHERE 子句示例

让我们看看如何使用 WHERE 子句来过滤提取的数据。为此,我们将使用下面显示的数据

Table records 1

WHERE 子句单个条件

在此示例中,我们将使用一个条件。

USE world;
SELECT Code, Name,
       Continent, Region,
       SurfaceArea, IndepYear,
       Population, LocalName        
FROM country
WHERE Continent = 'Asia';

上述 MySQL 语句将如上文所述检索 Continent 等于 Asia 的记录。

MySQL WHERE Clause 2

MySQL WHERE 子句多个条件

在此示例中,我们将使用多个条件。

USE world;
SELECT Code, Name,
       Continent, Region,
       SurfaceArea, IndepYear,
       Population, LocalName        
FROM country
WHERE Continent = 'Asia' AND Region = 'Southern and Central Asia';

上述 SELECT 语句检索上述指定记录,其中 Continent 等于 Asia,Region 等于 Southern and Central Asia。

Multiple Conditions 3

让我用另一个解释来展示多个条件。在这种情况下,我们将在 WHERE 子句中使用小于和大于运算符。

USE world;
SELECT Code, Name,
       Continent, Region,
       SurfaceArea, IndepYear,
       Population, LocalName        
FROM country
WHERE Population > 20000000 AND Population < 32164700;
WHERE Clause 4

WHERE 子句命令提示符示例

在此 WHERE 子句示例中,我们在命令提示符中编写查询,以演示 WHERE 子句以及多个条件。

USE world;
SELECT Code, Name,
       Continent, Region,
       SurfaceArea, IndepYear,
       Population, LocalName        
FROM country
WHERE Continent = 'Asia' AND Population > 40000000;

上述查询检索上述记录,其中 continent 是 Asia,population 大于 40000000。

请勿在 WHERE 条件中使用别名列名。因为 WHERE 子句会先执行,然后 SELECT 语句才会选择列。因此,WHERE 子句无法识别 SELECT 语句中声明的别名列名。

WHERE Clause 5