MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1158字,纯文字阅读大概需要2分钟。
内容图文
![MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题](/upload/InfoBanner/zyjiaocheng/887/f3420dc1bd4a4cd28f4d96ee23819aab.jpg)
你好-我是MySQL Noob.我有一个包含各种企业列表的表,并且我试图填充第二个表,称为城市,其中包含唯一的城市名称以及每个城市的列表数量.我能够执行SELECT语句,使我可以像这样很好地处理这些数据:
SELECT city,state,sum(count)
FROM (
SELECT city,state, 1 AS count FROM listings
) results
GROUP BY city
ORDER BY sum(count) DESC,city;
但是,现在我想更新表,但是似乎无法获得适当的语句来工作.这是我的最新消息,但当前收到“无效使用组函数”错误.
INSERT INTO cities(city,state,size)
SELECT city,state,sum(count)
FROM (
SELECT city,state, 1 AS count FROM listings
) results
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), size=sum(count);
任何帮助表示赞赏!
解决方法:
这样简单的事情会起作用吗?
insert into cities (city, state, size)
select city, state, count(*) as size from listings
group by city, state
分组依据应确保没有重复项,因此不需要重复键.您正在执行的sum()子查询操作似乎只是在尝试执行count(*).
您得到的特定错误是因为size = sum(count).在批处理中插入正确的方法是size = values(size),请参阅文档values().
编辑:
如果要为每个城市添加另一个条目,则城市上没有唯一索引,并且重复键也无济于事.
如果您在(城市,州)上添加唯一索引,则可以在上述查询中添加重复的键更新size = values(size),它将更新每个记录.
内容总结
以上是互联网集市为您收集整理的MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题全部内容,希望文章能够帮你解决MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。