mysql的on duplicate key update 如何用子查询代替

DrSmart 2014-06-25 05:23:24
关系数据库中mysql的on duplicate key update 如何用子查询代替,用了后发现 id主键自增太快,如何用子查询(一个sql语句)代替来解决下面的例子

INSERT INTO test(name) VALUES ('user') ON DUPLICATE KEY UPDATE name='user'
...全文
377 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2014-06-26
  • 打赏
  • 举报
回复
建议用2条SQL语句解决
DrSmart 2014-06-26
  • 打赏
  • 举报
回复
嗨,看来还是传统方式查询吧, mysql这设计的好2啊。
ACMAIN_CHM 2014-06-25
  • 打赏
  • 举报
回复
无好方法,建议使用两个语句先 update a,b set a.name=b.name where a.id=b.id insert into a (name) select name from b where id not in (select id from a)
码无边 2014-06-25
  • 打赏
  • 举报
回复
select max(id) from tb limit 1
DrSmart 2014-06-25
  • 打赏
  • 举报
回复
环境 mysql 5.5 还有啥可行的方法没,嘿嘿
rucypli 2014-06-25
  • 打赏
  • 举报
回复
跳id本身就数据库为了更高的效率才执行的 可以把mysql降到5.0的版本就不跳了
DrSmart 2014-06-25
  • 打赏
  • 举报
回复
有唯一索引,主要问题是防止id自增,replace什么的,id都自增很蛋疼,就是说保持数据内容不变时,本条id不增加,下一条插入的id也连续, ON DUPLICATE KEY UPDATE虽然本条id变但下一条的id还是跳过去了
wwwwb 2014-06-25
  • 打赏
  • 举报
回复
USER上有没有索引?参考REPLACE INTO

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧