mysql delete limit的问题
PHP中文网
PHP中文网 2017-04-17 11:47:01
[MySQL讨论组]

我建了下面这张表

CREATE TABLE `backup` (
  `id` int(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `userid` varchar(20) NOT NULL COMMENT '用户ID',
  `hello` mediumtext NOT NULL COMMENT '保存的内容',
  `times` datetime NOT NULL COMMENT '操作时间',
  PRIMARY KEY (`id`),
  KEY `backup_userid` (`userid`) COMMENT '用户ID'
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

说明
1.每个userid会有多条备份记录
2.对表的操作有
A:追加新的备份记录
B:删除一个用户早期的备份记录,只留下最新的5条
C:一些查询操作

请问我使用

delete from backup where userid=xxxx limit 2;

这条语句永远都只会删除用户xxxx的最早2条记录吗(删除前已经确定了xxxx的记录数是大于2条的)?

根据socrates 的回答mysql存储记录的顺序和自增ID的顺序并不一定是一致的,那么,当执行上面的delete 语句的时候,是按存储的顺序删除还是按自增ID的顺序?

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
阿神

这个是不能肯定,mysql不能保证存储的顺序和自增id是一致的,还是对顺序做一下限定

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号