Py学习  »  DATABASE

仅当选择count>n时才插入MySQL查询

Question • 5 年前 • 1281 次点击  

我有两个问题:

SELECT COUNT(*) FROM a WHERE id = 1
//if row == 1
INSERT INTO a VALUES(fielda) VALUES('value')

有没有办法把这两个查询合并成一个?我尝试使用“if(count>0,….)”和类似的方法,但查询不正确。 这涉及到在表中插入一个新记录,注意不要超过每个字段预先设置的记录数。 理论上,如果……

编辑:

@我试过了,但我想我不明白你写了什么(事实上我在提问中犯了一个错误),我试着这样回答:

THE QUERY AFTER YOUR RESPONSE:
INSERT INTO table1 SELECT MAX(id) FROM table1 WHERE field1 = (SELECT id from a WHERE f = field2) HAVING COUNT(*) = 1 (all fields request) VALUES (all values request)

//field1 = id from table2
//field2 = id from another table: associative value

//ORIGINAL QUERY
//FIRST COUNT:
SELECT COUNT(*) from table1 WHERE field1 = (SELECT id FROM table2 WHERE f = field2)
//AFTER THE INSERT:
INSERT INTO table1 (all fields request) VALUES (all values request)

我想到了这个例子,我试图向大家展示:

table player:字段(id,teamid,name)=>(id=int,teamid=int关联到表team,name=varchar)

表team:fields(id name)=>(id=int,name=varchar)

假设一个团队中的玩家最多为20个,那么您期望同一个teamid值的player表所关联的最多20个记录,或者至少这是我们人类所认为的,因为对于计算机来说也可以是无限的。我正在寻找一种方法,只允许在实际允许插入记录的情况下插入记录,在这种情况下,条件是在球员表中,每个球队的记录少于21条。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38732
 
1281 次点击  
文章 [ 1 ]  |  最新文章 5 年前