【问题标题】:Set a LIMIT to an INSERT query?将 LIMIT 设置为 INSERT 查询?
【发布时间】:2019-07-09 16:30:09
【问题描述】:

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

我写了类似的东西:

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

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

【问题讨论】:

  • 我可能只是在应用程序代码中编写该约束。
  • 我该怎么做?

标签: mysql insert limit sql-insert


【解决方案1】:

我不知道是否有任何单个查询可以同时处理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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-22
    • 2014-01-17
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多