为INSERT查询设置LIMIT吗?

时间:2019-07-09 16:30:09

标签: mysql insert limit sql-insert

我有一个表,每个用户最多只能有3行,所以每个用户只能在表中添加3个元素。

我写了类似的东西:

INSERT INTO 'MyTable' ('ID', 'eMail', 'ISBN') 
VALUES ('333', 'a@d', '222') , ('433','e@r', '223')

但是问题是我不知道如何设置插入限制。我只知道我不能使用LIMIT,因为它仅适用于SELECT查询。

1 个答案:

答案 0 :(得分:0)

我不知道有没有单个查询可以一次处理limitinsert?在为该用户插入新行之前,我宁愿按每个用户ID计算行数。

例如:

SELECT ID, COUNT(*) as CNT from `MyTable` GROUP BY ID HAVING COUNT(*) < 3 ORDER BY `ID` DESC

因此,上面的查询将仅返回ID->该ID的相应行数,借助此信息,您可以轻松地过滤出哪个用户可以在表上有新行,哪些应该被丢弃?

ID      CNT
333      2
899      1
443      2

INSERT INTO 'MyTable' ('ID', 'eMail', 'ISBN') VALUES ('333', 'a@d', '222') , ('899','e@r', '223'), ('443','f@r', '224')