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

标签 mysql

仅当该表中所有其他行的 state=0 时,我才尝试插入 mysql 条目。

例如。锦标赛表中有 350 个锦标赛行,全部状态=0,1 行状态=2。当查询运行时,我希望它检查是否仅存在一行且状态=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

关于mysql - 仅当该表中所有其他行的值为 0 时才插入 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778887/

相关文章:

php - MySQL/PHP : Find similar/related items by tag/taxonomy

MySQL 链接表获取插入的最后一行 table.value = X

mysql - 获取范围内的最大日期

mysql - SQL 帮助 - 根据不同的列值将列插入表中

mysql 查询改进与连接问题

mysql - 如果两个值之间的差的绝对值大于某个数,如何选择记录?

php - 如何展示多个分类以及每个分类下的产品?

mysql - 哪个 UTF8 - phpMyAdmin 可以正确显示中文、俄文、阿拉伯文?

mysql - 使用默认值与在查询中设置值的 MySQL 有任何性能差异吗?

mysql - 使用对话框的嵌入式 SQL INSERT