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