📅  最后修改于: 2023-12-03 15:03:07.563000             🧑  作者: Mango
MySQL Where 子句用于筛选出符合指定条件的数据。
Where 子句通常在 SELECT、UPDATE 和 DELETE 语句中使用。
在 SELECT 语句中,WHERE 子句可以根据指定的条件来过滤出符合条件的记录。
例如,以下的 SQL 语句将从 Customers 表中选取所有在城市 "London" 中的客户:
SELECT * FROM Customers WHERE City = 'London';
在 UPDATE 语句中,WHERE 子句可以根据指定的条件来修改符合条件的记录。
例如,以下的 SQL 语句将把 Customers 表中名字为 "Tom" 的客户的联系电话修改为 "1234567890":
UPDATE Customers SET ContactNumber = '1234567890' WHERE Name = "Tom";
在 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');
使用 WHERE 子句时要注意防止 SQL 注入攻击,可以采用以下的防范措施:
下面是一个使用预处理语句的例子:
$stmt = $conn->prepare("SELECT * FROM Customers WHERE City = ?");
$stmt->bind_param("s", $city);
$city = "London";
$stmt->execute();
MySQL Where 子句是对数据进行筛选、修改和删除的重要方式之一。使用 Where 子句时,需要注意防范 SQL 注入攻击,并选择合适的运算符对数据进行过滤。