当前位置:  数据库>mysql

关于MYSQL中每个用户取1条记录的三种写法(group by xxx)

    来源: 互联网  发布时间:2014-10-10

    本文导语:  今天以前的同学问我关于这方面的SQL语句,我特意记忆一下,毕竟这个也比较常见了 代码如下:select * from (select * from member_payment                 order by id desc) t group by member_id limit 10第一种是先排序,然后group,这样的话...

今天以前的同学问我关于这方面的SQL语句,我特意记忆一下,毕竟这个也比较常见了
代码如下:

select * from (select * from member_payment
                order by id desc) t group by member_id limit 10

第一种是先排序,然后group,这样的话自然可以取到最适合的一条数据。
缺点很明显:Using temporary; Using filesort
代码如下:

select s.*
from (SELECT max(id) as id FROM `member_payment` group by `member_id` limit 10) t
left join `member_payment` as s on t.id=s.id

第二种是联合查询
代码如下:

select * from `member_payment` where EXISTS (
 select `id` from (
  SELECT max(`id`) as id FROM `member_payment` group by `member_id` limit 10) t
 where t.`id`=`member_payment`.`id`
)

第三种是子查询
窃以为第二种效率最高

    
 
 

您可能感兴趣的文章:

  • mysql 不等于 符号写法
  • MySQL与SQL的触发器的不同写法
  • 取数据库前几条数据(sql server、oracle、mysql)的sql写法
  • 检查用户名是否已在mysql中存在的php写法
  • 求教! if(rs.getString("name")!="中文") //MySql+连接池, 这种写法有什么不对?
  • mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法
  • mysql支持跨表delete删除多表记录 iis7站长之家
  • linux服务器清空MySQL的history历史记录 删除mysql操作记录
  • 请问mysql如何控制表的记录总数!
  • mysql 判断记录是否存在方法比较
  • mysql中判断记录是否存在方法比较
  • MYSQL速度慢的问题 记录数据库语句
  • PHP获取Mysql插入记录ID
  • mysql合并多条记录的单个字段去一条记录编辑
  • mysql 存在该记录则更新,不存在则插入记录的sql
  • mysql 前几条记录语句之(limit)
  • mysql快速添加百万条记录的语句
  • mysql 查询第几行到第几行记录的语句
  • 删除mysql数据库中的重复数据记录
  • mysql 数据表中查找重复记录
  • mysql 记录不存在时插入 记录存在则更新的实现方法
  • 远程连接mysql数据库注意点记录
  • MySQL 查询某个字段不重复的所有记录
  • mysql insert if not exists防止插入重复记录的方法
  • mysql 复制记录实现代码
  • mysql支持跨表delete删除多表记录
  • mysql删除表中某一字段重复的记录
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样让我的程序能像mysql一样运行后有一个mysql>的提示符等待用户输入并解析用户输入的数据然后执行操作?
  • LAMP环境下,通过非root用户,可以获取mysql的用户名和密码吗?
  • linux 下mysql 以root和普通用户进入mysql的问题
  • 急!linux下mysql的创建用户组和创建用户命令不能生效啊????
  • MySQL的用户问题,菜鸟提问
  • mysql修改用户密码的方法和mysql忘记密码的解决方法
  • Mysql用户变量传递问题
  • MYSQL基础之连接MYSQL、修改密码、添加用户
  • 允许远程用户访问mysql服务sql语句
  • mysql里面我怎么管理用户的访问权限呢?
  • 我用kylix上的sql connection连接同一网段的linux上的MYSQL,但总是提示用户及密码不下确,但实际上用户及密码肯定是正确的呀?
  • mysql root用户的密码修改和消除
  • mysql增加新用户无法登陆解决方法
  • RedHat linux9.0自带Mysql数据库的用户名和密码是什么?
  • mysql数据库添加用户及分配权限具体实现
  • Windows中MySQL root用户忘记密码解决方案
  • VPS下修改MySQL root用户密码的方法
  • 如何开一个10M的MYSQL数据库给用户?
  • 在WIN命令提示符下mysql 用户新建、授权、删除,密码修改
  • linux 下 如果没有根用户权限是不是就装不了 mysql ??
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3