📜  MySQL-WHERE子句(1)

📅  最后修改于: 2023-12-03 15:03:07.563000             🧑  作者: Mango

MySQL Where 子句

MySQL Where 子句用于筛选出符合指定条件的数据。

用法

Where 子句通常在 SELECT、UPDATE 和 DELETE 语句中使用。

SELECT语句中的 WHERE

在 SELECT 语句中,WHERE 子句可以根据指定的条件来过滤出符合条件的记录。

例如,以下的 SQL 语句将从 Customers 表中选取所有在城市 "London" 中的客户:

SELECT * FROM Customers WHERE City = 'London';
UPDATE语句中的 WHERE

在 UPDATE 语句中,WHERE 子句可以根据指定的条件来修改符合条件的记录。

例如,以下的 SQL 语句将把 Customers 表中名字为 "Tom" 的客户的联系电话修改为 "1234567890":

UPDATE Customers SET ContactNumber = '1234567890' WHERE Name = "Tom";
DELETE语句中的 WHERE

在 DELETE 语句中,WHERE 子句可以根据指定的条件来删除符合条件的记录。

例如,以下的 SQL 语句将从 Customers 表中删除所有在城市 "Paris" 中的客户:

DELETE FROM Customers WHERE City = 'Paris';
支持的运算符

下表列出了在 MySQL 中用于 WHERE 子句的运算符:

| 运算符 | 描述 | | --------- | ------------------------------------------ | | = | 相等 | | <> 或 != | 不等于 | | < | 小于 | | <= | 小于或等于 | | > | 大于 | | >= | 大于或等于 | | BETWEEN | 在指定的两个值之间(包括这两个值) | | IN | 在一个列表中 | | NOT IN | 不在一个列表中 | | LIKE | 搜索匹配指定模式的值 | | NOT LIKE | 搜索不匹配指定模式的值 | | % | 代表零个或多个字符 | | _ | 代表一个字符 | | IS NULL | 为 NULL 值 | | IS NOT NULL | 不是 NULL 值 | | AND | 逻辑 AND | | OR | 逻辑 OR | | NOT | 逻辑 NOT |

例如,以下 SQL 语句选择 Customers 表中所有订阅了 Newsletter 且居住在 London 或 Paris 的客户:

SELECT * FROM Customers WHERE Newsletter = 1 AND (City = 'London' OR City = 'Paris');
避免 SQL 注入

使用 WHERE 子句时要注意防止 SQL 注入攻击,可以采用以下的防范措施:

  • 永远不要信任用户的输入。
  • 使用 PHP 变量、预处理语句或者存储过程来代替用户的输入直接拼接 SQL 语句。
  • 对所有用户输入进行过滤,可以使用 MySQL 的内置函数提供的过滤函数。

下面是一个使用预处理语句的例子:

$stmt = $conn->prepare("SELECT * FROM Customers WHERE City = ?");
$stmt->bind_param("s", $city);
$city = "London";
$stmt->execute();
总结

MySQL Where 子句是对数据进行筛选、修改和删除的重要方式之一。使用 Where 子句时,需要注意防范 SQL 注入攻击,并选择合适的运算符对数据进行过滤。