【问题标题】:Insert Into If two queries are equals插入如果两个查询相等
【发布时间】:2014-02-16 13:50:32
【问题描述】:

基本上,这是我想做的:

IF
( 
   SELECT start FROM team WHERE teamid=0
   ==  
   SELECT end FROM team WHERE teamid=0 
)

THEN

INSERT INTO team (end) VALUES ( NOW() );

当然错字错了,但你有这个想法。

这在 MySQL 中是否可行?

【问题讨论】:

  • 查看 INSERT SELECT 语法

标签: mysql insert compare


【解决方案1】:

我想你想要一个更新声明:

update team
    set `end` = now()
    where `start` = `end` and teamid = 0;

这会将end 列设置为当前时间,在end 列等于start 列且teamid0 的行中。

【讨论】:

  • 谢谢。是的,更新是我需要的,感谢您指出这一点。只是一个简单的事情,最后应该是“ and teamid = 0 ”,但逻辑很好。再次感谢!
【解决方案2】:

那就这样吧

declare k int;
SELECT k = 1 FROM team WHERE start = end and teamid=0
IF ( k = 1 )
THEN
INSERT INTO team (end) VALUES ( NOW() );

【讨论】:

  • 感谢您的回答。我想我永远无法理解 MySql 语法。我选择了另一个答案,因为它更容易理解,但我肯定会尝试解决这个变量。
猜你喜欢
  • 2011-10-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多