MySQL 同时使用AND和OR运算符


本MySQL教程将通过语法和示例说明了如何在MySQL查询中一起使用AND运算符和OR运算符。

当同时使用AND和OR时, 可以使用括号 ()指定运行优先顺序。

语法

MySQL中AND条件和OR条件的语法为:

1
2
3
4
WHERE condition1
AND condition2
...
OR condition_n;
参数 说明
condition1,condition2,... condition_n 指定筛选数据时使用的条件。

##MySQL 同时使用AND和OR运算符例子

示例-在SELECT语句使用AND和OR运算符

1
2
3
4
SELECT *
FROM customers
WHERE (state = 'California' AND last_name = 'Johnson')
OR (customer_id > 30);

在California并且名字为Johnson的客户,和 customer_id大于30的客户都将被放到结果集中。

另外一个例子:

1
2
3
4
5
SELECT customer_id, last_name, first_name
FROM customers
WHERE (last_name = 'Johnson')
OR (last_name = 'Anderson' AND state = 'California')
OR (last_name = 'Smith' AND status = 'Active' AND state = 'Florida');

将返回下面这些客户:

  • 名字为Johnson的
  • 名字为Anderson并且在California州的
  • 名字为Smith并且在Florida州,状态为Active的

示例-在INSERT语句中使用AND和OR运算符

1
2
3
4
5
6
INSERT INTO suppliers
(SupplierID, ContactName)
SELECT CustomerID, ContactName
FROM customers
WHERE (ContactName = 'Helen Bennett' OR ContactName = 'John Steel')
AND CustomerID >= 16;

将来自customers表中的
ContactName是Helen Bennett或者John Steel
并且CustomerID大于或等于16的
所有CustomerID和ContactName记录插入suppliers表。

示例-在UPDATE语句中使用AND和OR运算符

1
2
3
4
UPDATE products
SET UnitPrice = 0.9*UnitPrice
WHERE SupplierID = 7
AND (CategoryID = 2 OR CategoryID = 3);

将id为7的供应商提供的位于2,3类的产品价格调整为原来的90%。

示例-带DELETE语句

1
2
3
DELETE FROM products
WHERE SupplierID = 24
AND (CategoryID = 6 OR CategoryID = 7);

将供应商ID为24 并且类别为6,7的产品从数据库中删掉。


原文链接:https://codingdict.com/