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

时间:2015-09-25 09:21:13

标签: mysql

我正在尝试仅在所有其他行在该表中具有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;

1 个答案:

答案 0 :(得分:1)

这似乎是通过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