mysql case when筛选一个字段把另外一个字段置为null
时间: 2024-03-16 22:42:05 浏览: 118
您可以使用如下的 SQL 语句来实现:
```
UPDATE 表名
SET 字段名 = NULL
WHERE 条件
```
具体地,您可以将以上的 SQL 语句中的 `表名` 替换为您需要进行操作的表的名称,将 `字段名` 替换为您需要置为 NULL 的字段的名称,将 `条件` 替换为您筛选记录的条件。例如,如果您想要将表 `mytable` 中 `field2` 字段的值置为 NULL,当 `field1` 字段的值等于 1 时,可以使用以下的 SQL 语句:
```
UPDATE mytable
SET field2 = NULL
WHERE field1 = 1
```
注意,执行此操作将会修改表中的数据,因此请谨慎操作。
相关问题
mysql case when筛选字段a把与字段a对应的字段b置为null,不修改原表
您可以使用如下的 SQL 语句来实现:
```
SELECT
CASE WHEN 字段a = '某个值' THEN NULL ELSE 字段b END AS 字段b,
其他字段1,
其他字段2,
...
FROM 表名
WHERE 条件
```
具体地,您可以将以上的 SQL 语句中的 `表名` 替换为您需要进行操作的表的名称,将 `字段a` 和 `字段b` 替换为您需要进行操作的字段的名称,将 `某个值` 替换为您需要筛选的值,将 `其他字段1`、`其他字段2` 等替换为您需要查询的其他字段。例如,如果您想要将表 `mytable` 中 `field2` 字段的值置为 NULL,当 `field1` 字段的值等于 1 时,可以使用以下的 SQL 语句:
```
SELECT
CASE WHEN field1 = 1 THEN NULL ELSE field2 END AS field2,
field3,
field4,
...
FROM mytable
WHERE 条件
```
请注意,这个查询语句不会修改原表中的数据,仅仅是查询结果中将符合条件的字段 `b` 与 `a` 对应的值置为了 NULL。
mysql CASE WHEN
MySQL中的`CASE WHEN`语句是一种条件语句,用于在SQL查询中根据条件对结果进行分组或排序。它的语法如下:
```
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END
```
其中,`condition1`、`condition2`等是条件表达式,`result1`、`result2`等是对应的结果表达式。如果`condition1`成立,则返回`result1`,如果`condition2`成立,则返回`result2`,否则返回`result3`。`ELSE`关键字是可选的,如果没有提供`ELSE`子句,则默认返回`NULL`。
例如,假设我们有一个`students`表,其中包含学生的姓名和分数两个字段,我们可以使用`CASE WHEN`语句来将学生按照分数分为三组:
```
SELECT name, score,
CASE WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
ELSE 'C'
END AS grade
FROM students;
```
这条查询语句将返回一个结果集,其中包含每个学生的姓名、分数和对应的等级(A、B或C)。如果一个学生的分数大于等于90分,则被分为A级;如果分数大于等于80分但小于90分,则被分为B级;否则被分为C级。
阅读全文