繁体   English   中英

仅当该表中的所有其他行的值为0时插入mysql行

[英]Insert mysql row only if all other rows in that table have a value of 0

我试图仅在所有其他行在该表中具有state = 0的情况下插入mysql条目。

例如。 锦标赛表中有350个锦标赛行,所有行的状态均为= 0,状态为2的行则为1。 当查询运行时,我希望它检查只有一行存在state = 2,如果确实存在,则执行插入,如果不是,则执行插入。

我尝试将其作为解决方案,但失败了:

INSERT INTO newTournaments(`start`,`registration`,`end`,`prize`,`state`) 
VALUES('1','1','1','1','1') 
where (SELECT id FROM newTournaments WHERE state != 0) = tournamentId;

这种情况似乎是通过select语句插入会有所帮助:

INSERT INTO newTournaments(`start`,`registration`,`end`,`prize`,`state`) 
SELECT '1','1','1','1','1'
FROM (select 'a') a
WHERE (SELECT count(*) FROM newTournaments WHERE state = 2) = 1

sqlfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM