mysql-一条貌似简单的Mysql问题

问题描述

一条貌似简单的Mysql问题

如何删除部份记录?

设有一份数据表:
userid score year
1 90 1990
2 80 2000
3 70 2010
1 85 2000
2 90 2010
1 95 2010

要求: 对于每个用户来说,仅保留其两条最近的记录,其余的删除,请问如何用一条sql语句搞定?

补充说明:
1. userid是用户的id
2. year是表示该记录的年份,数值越小表明该记录越旧.
3. 保留的最新记录数可能是2, 也可能是3或者更多,因此请勿用"保留一条记录"的做法。

谢谢

解决方案

解决了。
多谢微wx笑。

解决方案二:

使用一条语句解决似乎有点难

解决方案三:

我觉得group by可以用limit就好了

时间: 2024-11-05 14:59:02

mysql-一条貌似简单的Mysql问题的相关文章

mysql delete 删除一条记录简单方法

mysql教程 删除一条记录简单方法,应该说是最简单的入门级的了,下面我们来看看如何利用mysql sql语句来删除一条记录吧. mysql>delete from 表名 where id=1; query ok, 这样就可以删除了, 如果你和php教程 mysql配置只要利用php连接到数据库教程再用php mysql_query("delete from 表名 where id=1");就可以删除了. <?php $con = mysql_connect("l

简单讲解MySQL的数据库复制方法_Mysql

MySQL复制其实就是把数据从一个节点(master) 拷贝到另一个节点(slaves), 当然根据应用架构的不同,采用的方式也不同,MySQL服务器之间的复制使用的是二进制日志机制.对master的更新与变动都会作为事件(event)记录在日志中,日志中的信息会随变化的不同被记录成不同的格式.slaves被配置成从master读取日志,并且执行二进制日志中的事件到slave本地数据库.一旦master启动二进制日志功能,那么所有语句操作都会被记录下来,每一个slave会收到一份整个日志内容的拷

简单介绍MySQL中索引的使用方法_Mysql

数据库索引是一个数据结构,提高操作的速度,在一个表中可以使用一个或多个列,提供两个快速随机查找和高效的顺序访问记录的基础创建索引. 在创建索引时,它应该被认为是将SQL查询的那些列上创建一个或多个索引的列. 实际上,指数也保持主键或索引字段和指针的实际表中每条记录的表型. 用户无法看到索引,它们只是用来加快查询速度,将用于数据库搜索引擎找到的记录速度非常快. INSERT和UPDATE语句表上的索引需要更多的时间,成为快速对这些表的SELECT语句.究其原因是,当进行插入或更新,数据库以及需要惰

简单的MySQL备份与还原方法分享_Mysql

为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇"超时"而操作失败.所以,学会在命令行模式下备份.还原数据库,还是很有必要的. Linux系统下 备份数据库 在 Linux 命令行模式下备份 MySQL 数据库,用的是 mysqldump 命令: mysqldump -u mysqluser -p test_db 对

mysql主从复制(超简单)

mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作:1.1.版本一致1.2.初始化表,并在后台启动mysql1.3.修改root的密码 2.修改主服务器master: vi /etc/my.cnf [mysqld]log-bin=mysql-bin //[必须]启用二进制日志server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3.修改从服务器slave: vi /etc/my.cnf [

ubuntu下简单配置mysql数据库

ubuntu下简单配置mysql数据库 一). ubuntu下mysql安装布局: /usr/bin                      客户端程序和mysql_install_db /db                             数据库和日志文件 /var/run mysqld        服务器 /etc/mysql mysql       配置文件my.cnf /usr/share/mysql       字符集,基准程序和错误消息 /etc/init.d/mysq

简单的mysql 性能和健康程度巡检

简单的mysql 性能和健康程度巡检

简单讲解MySQL中的多源复制_Mysql

 近日ORACLE发布几个新的功能在最新的Mysql5.7.2的版本上,由此有了此篇文章.大多数的改善是在数据库性能和复制相关的功能上,这个新版本会带给我们不可思议的效果. 在这篇文章里,我将要用一些简单的步奏来尝试了解这新的多源复制工作原理以及我们怎样进行自己的测试.需要说明的是,这还是一个开发版本,不是给生产环境准备的.因此这篇文章是打算给那些想了解此新功能的人,看看它是如何在应用中工作的,都是在临时环境中进行相关操作. 什么是多源复制? 首先,我们需要清楚 multi-master 与mu

MySql官方手册学习笔记1 MySql简单上手_Mysql

连接与断开服务器 连接服务器通常需要提供一个MySQL用户名并且很可能需要一个 密码.如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名: shell> mysql -h host -u user -p Enter password: ******** host代表MySQL服务器运行的主机名,user代表MySQL账户用户名,******** 代表你的密码. 如果有效,你应该看见mysql>提示符后的一些介绍信息: shell> mysql -h host -u user -