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