mysql 筛选数据置为null,不修改原表
时间: 2024-03-16 11:41:46 浏览: 123
如果你只是想查询出符合条件的数据,并将其中的某个字段置为 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 语句。
相关问题
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 筛选有一行字段a为null,将字段b的值赋给字段a,不修改原表
你可以使用如下的 SQL 语句来实现:
```
SELECT *, IF(a IS NULL, b, a) AS new_a FROM your_table;
```
其中,`your_table` 是你要查询的表名,`a` 和 `b` 分别是你要更新的目标字段和源字段。这条语句会查询出所有行的数据,并在查询结果中添加一列 `new_a`,如果该行的 `a` 字段为 `NULL`,则 `new_a` 字段的值为该行的 `b` 字段的值,否则 `new_a` 字段的值为该行的 `a` 字段的值。这样,你就可以在不修改原表的情况下,得到一个带有更新后 `a` 字段的查询结果。
阅读全文