MySQL INSERT在同一个表上使用带有COUNT()的子查询
我无法正确执行INSERT查询,而且我似乎无法在Google或Stack Overflow上找到解决此特定问题的任何内容. 我正在尝试为特色条目创建一个简单的表,其中entry_id与它的当前顺序一起保存到表中. 我想要的输出是这样的: 如果特色表目前有这三个条目:
我希望使用featured_order = 3保存下一个条目. 我试图让以下查询工作没有运气:
我得到的错误是:您不能在FROM子句中为更新指定目标表’featured’. 任何人都可以帮助获得计数而不会导致错误的解决方案吗? 提前致谢! 最佳答案 这是一件很酷的事:MySQL的INSERT . . . SELECT :
不需要子查询. @Bohemian有一个好点:
所以更好的查询可能是:
他的触发方法在他的回答中描述也是实现你想要的好方法. 查询1的潜在问题是,如果您删除了一行,则排名将被删除,并且您将在featured_order中重复.使用第二个查询这不是问题,但是您将有间隙,就像使用自动增量列一样. 如果您绝对必须拥有无间隙的订单,我所知道的最佳解决方案是运行以下一系列查询:
每当你删除一行 (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 卸载MySQL以及重装卡到Start Services的解决办法(亲测有效,
- mysql – 为什么同一个查询给出两个不同的结果?
- mysql – 我可以确定或限制允许使用的内存查询量
- php – mysqli_fetch_all没有在共享主机上工作,需要替代
- php – MySQL中固定数量字符串的最佳实践?
- python – pymssql.OperationalError:DB-Lib错误消息20009
- php – 使用MYSQL在同一部电影上插入多个actor
- c# – 有没有办法在SQL数据库中搜索相似的单词(意思是不相同
- php – 增加数据库中字段的最快方法
- mysql – 在phpMyAdmin中哈希