使用mysql实现简单的流控制
我有一个简单的例子来描述我的问题。假设我的表结构如下=>使用mysql实现简单的流控制,mysql,sql,Mysql,Sql,我有一个简单的例子来描述我的问题。假设我的表结构如下=> create table A( id INT(3) NOT NULL AUTO_INCREMENT PRIMARY_KEY, act DATETIME, act_reset INT(1) DEFAULT 0); 我想写一个查询,条件是如果act\u reset为true(如果不是0),则更新列actDATETIME 我这样试过=> IF act_reset THEN UPDATE A SET act=now() WHERE id=1 E
create table A(
id INT(3) NOT NULL AUTO_INCREMENT PRIMARY_KEY,
act DATETIME,
act_reset INT(1) DEFAULT 0);
我想写一个查询,条件是如果act\u reset为true
(如果不是0),则更新列act
DATETIME
我这样试过=>
IF act_reset THEN UPDATE A SET act=now() WHERE id=1 END IF;
但是这个语法是无效的,我必须如何用一个查询来编写这个条件?谢谢更新设置act=now(),其中id=1,act\u重置0
UPDATE A SET act=now() WHERE id=1 AND act_reset <> 0
这就是你要找的问题吗
在MySQL中使用If语句:
IF act_reset <> 0 THEN
UPDATE A SET act=now() WHERE id=1
END IF;
如果动作重置为0,则
更新集合act=now(),其中id=1
如果结束;
更新设置act=now(),其中id=1,act\u重置0
这就是你要找的问题吗
在MySQL中使用If语句:
IF act_reset <> 0 THEN
UPDATE A SET act=now() WHERE id=1
END IF;
如果动作重置为0,则
更新集合act=now(),其中id=1
如果结束;
在这种情况下,您不需要使用CASE
语句或IF
语句。只要将条件If act_reset
移动到WHERE
子句,如下所示:
UPDATE A
SET act = now()
WHERE id = 1
AND act_reset <> 0
更新A
SET act=now()
其中id=1
然后重新设置0
在这种情况下,您不需要使用CASE
语句或IF
语句。只要将条件If act_reset
移动到WHERE
子句,如下所示:
UPDATE A
SET act = now()
WHERE id = 1
AND act_reset <> 0
更新A
SET act=now()
其中id=1
然后重新设置0
假设act\u reset
是一个变量名。您忘记了分号,还需要使用分隔符
DELIMITER $$
IF act_reset <> 0
THEN
UPDATE A SET act=now()
WHERE id = 1 $$
END IF$$
DELIMITER ;
假设
act\u reset
是一个变量名。您忘记了分号,还需要使用分隔符
DELIMITER $$
IF act_reset <> 0
THEN
UPDATE A SET act=now()
WHERE id = 1 $$
END IF$$
DELIMITER ;
是的,但我也对if语句感兴趣,因为我只是MySql的乞丐,我想知道,谢谢你advice@Tornike在SQL中,使用
IF
语句执行此操作是错误的。这没有道理。总是试着用你想处理的数据集来表达你的问题-不要用控制流来思考(即,基于集合的思考,而不是强制性的)。是的,但也对if语句感兴趣,因为我只是MySql的乞丐,我想知道,谢谢你advice@Tornike在SQL中,使用IF
语句执行此操作是错误的。这没有道理。始终尝试根据您想要处理的数据集来表述您的问题-不要从控制流的角度来思考(即基于数据集的思考,而不是强制性的思考)。