Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 执行选择和更新的单个查询_Mysql_Sql_Sql Update - Fatal编程技术网

Mysql 执行选择和更新的单个查询

Mysql 执行选择和更新的单个查询,mysql,sql,sql-update,Mysql,Sql,Sql Update,对于条件=1,col1应设置为1,对于所有条件!=1 col1的值应为0 SELECT col1, col2 FROM table WHERE condition1 = 1; 这可以在单个查询中完成吗?(而不是1次更新和1次选择) 在MySQL中,您可以编写以下内容: UPDATE table1 SET col1 = (condition <=> 1) 更新表1 设置col1=(条件1) 这是因为在MySQL中布尔值TRUE等于1,FALSE等于0。在

对于条件=1,col1应设置为1,对于所有条件!=1 col1的值应为0

SELECT col1, 
       col2 
  FROM table 
 WHERE condition1 = 1;

这可以在单个查询中完成吗?(而不是1次更新和1次选择)

在MySQL中,您可以编写以下内容:

UPDATE table1
SET col1 = (condition <=> 1)
更新表1
设置col1=(条件1)

这是因为在MySQL中布尔值TRUE等于1,FALSE等于0。

在MySQL中,您可以这样写:

UPDATE table1
SET col1 = (condition <=> 1)
更新表1
设置col1=(条件1)

这是因为在MySQL中,布尔值TRUE等于1,FALSE等于0。

您是在尝试选择并更新,还是只是在尝试更新

如果您只是尝试更新,那么SELECT查询是不必要的。只需使用:

UPDATE table SET col1=1 WHERE condition=1;

您是在尝试选择并更新,还是只是在尝试更新

如果您只是尝试更新,那么SELECT查询是不必要的。只需使用:

UPDATE table SET col1=1 WHERE condition=1;
使用:

使用:


为了强调这一点,也可以通过这种方式来实现

update table 
set col1=if(col1 = 1,1,0);

为了强调这一点,也可以通过这种方式来实现

update table 
set col1=if(col1 = 1,1,0);

我们这里还需要0吗?我想当条件为NULL时,应该注意0。@Sharpeye500:我不知道你的数据——你是说条件总是NULL还是1?如果是这样的话,请随意省略ELSE。我们是否需要这里的其他0,我想当条件为NULL时,您会得到0,这应该引起注意。@Sharpeye500:我不知道您的数据--您是说条件将始终为NULL或1?如果是这样的话,可以省略其他选项。