我有一个表,每个用户最多只能有3行,所以每个用户只能在表中添加3个元素。
我写了类似的东西:
INSERT INTO 'MyTable' ('ID', 'eMail', 'ISBN')
VALUES ('333', 'a@d', '222') , ('433','e@r', '223')
但是问题是我不知道如何设置插入限制。我只知道我不能使用LIMIT
,因为它仅适用于SELECT
查询。
答案 0 :(得分:0)
我不知道有没有单个查询可以一次处理limit
和insert
?在为该用户插入新行之前,我宁愿按每个用户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')