mysql case when筛选字段a把与字段a对应的字段b置为null,不修改原表
时间: 2024-03-16 18:42:07 浏览: 73
您可以使用如下的 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筛选一个字段把另外一个字段置为null
您可以使用如下的 SQL 语句来实现:
```
UPDATE 表名
SET 字段名 = NULL
WHERE 条件
```
具体地,您可以将以上的 SQL 语句中的 `表名` 替换为您需要进行操作的表的名称,将 `字段名` 替换为您需要置为 NULL 的字段的名称,将 `条件` 替换为您筛选记录的条件。例如,如果您想要将表 `mytable` 中 `field2` 字段的值置为 NULL,当 `field1` 字段的值等于 1 时,可以使用以下的 SQL 语句:
```
UPDATE mytable
SET field2 = NULL
WHERE field1 = 1
```
注意,执行此操作将会修改表中的数据,因此请谨慎操作。
mysql 筛选数据置为null,不修改原表
如果你只是想查询出符合条件的数据,并将其中的某个字段置为 NULL,而不想修改原表中的数据,可以使用 SELECT 语句结合 CASE WHEN 语句实现。具体方法如下:
```
SELECT
column1,
CASE
WHEN some_condition THEN NULL
ELSE column2
END AS column2,
column3
FROM your_table;
```
上述 SQL 语句中,通过 CASE WHEN 语句判断某个条件是否成立,如果成立,则将 column2 置为 NULL,否则保留原值。最终查询出 column1、column2 和 column3 这三个字段的值。
需要注意的是,这种方法只是查询出符合条件的数据,并将其中的某个字段置为 NULL,而不会修改原表中的数据。如果需要修改原表中的数据,仍然需要使用 UPDATE 语句。
阅读全文