当前位置:首页 > 行业动态 > 正文

MySQL查询排除多个值的方法

当使用MySQL查询时,有时需要排除多个特定的值,下面将详细介绍如何在MySQL查询中排除多个值的方法。

使用NOT IN子句

使用NOT IN子句可以轻松地排除多个特定值,以下是一个示例:

SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT IN (value1, value2, ...);

在上面的查询中,column_name是要排除的列名,value1, value2, ...是多个要排除的值,通过在NOT IN子句中列出这些值,可以排除它们并返回其他行。

单元表格示例

假设我们有一个名为students的表,其中包含以下列:id, name, age, city,现在,我们想要选择除特定城市之外的所有学生记录。

id name age city
1 Alice 20 New York
2 Bob 22 London
3 Charlie 19 Paris
4 David 21 New York
5 Emily 23 Tokyo

如果我们想选择除纽约和东京之外的所有学生记录,可以使用以下查询:

SELECT * FROM students WHERE city NOT IN ('New York', 'Tokyo');

执行上述查询后,将返回以下结果:

id name age city
2 Bob 22 London
3 Charlie 19 Paris
5 Emily 23 Tokyo

可以看到,纽约和东京的记录已被排除。

使用NOT LIKE子句和通配符

另一种排除多个特定值的方法是使用NOT LIKE子句和通配符,以下是一个示例:

SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT LIKE '%value1%' AND column_name NOT LIKE '%value2%';

在上面的查询中,column_name是要排除的列名,value1, value2, ...是多个要排除的值,通过使用通配符%来匹配任意字符序列,可以排除包含这些值的行,注意,为了确保排除多个值,使用了两个NOT LIKE条件。

单元表格示例

假设我们有一个名为products的表,其中包含以下列:id, name, category,现在,我们想要选择除了特定类别之外的每个产品名称。

id name category
1 Apple Fruit
2 Banana Fruit
3 Carrot Vegetable
4 Tomato Vegetable
5 Cheese Dairy
6 Milk Dairy
7 Bread Bakery
8 Butter Bakery
9 Rice Grain
10 Noodles Grain

如果我们想选择除了水果和面包之外的每个产品名称,可以使用以下查询:

SELECT name FROM products WHERE category NOT LIKE '%Fruit%' AND category NOT LIKE '%Bakery%';

执行上述查询后,将返回以下结果:

name category
Carrot Vegetable
Tomato Vegetable
Cheese Dairy
Milk Dairy
Rice Grain
Noodles Grain
0

随机文章