SQL选择和更新

时间:2015-05-28 04:50:44

标签: mysql sql

所以我想创建一个返回一组行的SQL查询,并将这些行中的某个列设置为null。所以,如果我有一个类似

的表格
column1 column2 column3
a       b       c
a       b       d
e       f       g

我想做伪SQL SELECT * FROM table WHERE column1 = a AND ALSO SET column2 = null并让它返回上面的前两行,同时让表格看起来像

column1 column2 column3
a       null    c
a       null    d
e       f       g

我可以这样做吗?

2 个答案:

答案 0 :(得分:0)

首先,无法在一个查询中同时使用selectupdate

其次,如果您只想在null显示column1 = 'a',那么您可以试试这个:

SELECT column1,CASE WHEN column1='a' THEN NULL ELSE column2 END as column2
      ,column3
FROM yourtable

修改

但是,如果要获取原始数据然后更新值,则必须编写两个单独的查询。一个用于选择resords,另一个用于更新表格column2的记录。

答案 1 :(得分:0)

DECLARE @column1 varchar(2);
SET @column1 = (SELECT distinct column1 FROM table WHERE column1 = 'a' );

select * from table where column1 = @column1;
update table set column2 = null where column1 = @column1;

这个工作对我来说是在sql server..which将返回之前的行,并将使用后台的新值更新列