虽然使用不多,但是也有情况是需要在mysql 里面写语句开发功能的。在sql server 使用惯了,习惯了使用row_number() 函数进行排序,但是mysql 确没有这样一个函数。然后找到了po主写的一篇 文章。通过变量赋值来查询的。(PS 我测试的版本是mysql 5.6)

参考链接:http://www.cnblogs.com/advocate/archive/2012/03/02/2376900.html

先建表

CREATE TABLE `test` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Col1` varchar(50) DEFAULT NULL,

`Col2` varchar(50) DEFAULT NULL,

`Col3` int(11) DEFAULT NULL,

`Col4` float DEFAULT NULL,

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

然后插入测试数据,使用po主介绍的方法来测试

insert into test(Col1,Col2,Col3,Col4) values (1,2,3,4),(1,2,6,5),(1,2,7,8),(1,"激发",5,7);

delimiter //

select @row:=case when @row is null then 1 else @row+1 end as RNr,

ID,Col1,Col2,Col3,Col4 from test ;

//

delimiter ;

结果查询出结果是

查询出来的记过,Rnr为什么都是1 呢?因为对于本次查询来说,@row 这个变量的值,一直都是null ,所以根据case 的判别式来看的话,就只能是1 了。引起了这种现象。但是再执行,就正常的了,我们将同样的脚本

再执行一次,查出来应该就是2345了

测试验证确实如此,由此可见。变量在本次会话里面是一直存在的,并且每次会沿用,所以就出现前面的那种情况。

其实对应的解决方法也很简单,既然因为每个会话都会用同一个值,那么只需要在开始的时候赋初值就可以解决问题了,比如我们这个例子在开始的时候将 set @row = 0; 加上这句,那么每次执行,都会先赋初值,当然就可以得到一致的执行效果了。

这个测试告诉了我,在这个数据库里面,控制变量初始值hin重要。

MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)

转自: http://www.maomao365.com/?p=10564 摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_numbe ...

mysql数据库 BETWEEN 语法的用法和边界值解析

between用法: 用于where表达式中,选取两个值之间的数据,如: SELECT id FROM user WHERE id BETWEEN value1 AND value2; 当betwee ...

Mysql中实现row_number

CREATE TABLE `zsl_test` (          `ID` INT(10) NULL DEFAULT NULL,          `class` INT(10) NULL DEF ...

MySQL 实现 Oracle row_number over 数据排序功能

一.方法一GROUP_CONCAT.SUBSTRING_INDEX 1.GROUP_CONCAT 2.SUBSTRING_INDEX 3.例子 首先我们可以首先根据job_id 排序然后根据start ...

Mysql常用时间函数的用法和应用

/* ---1)整型时间戳转换为date的格式(yyyymmdd, yyyy年mm月dd)--*/ , '%Y%m%d' ); -- 20090806 , '%Y年%m月%d' ); -- 2009年 ...

mysql的row_number()实现

在mysql中没有row_number()方法,这里模拟row_number()实现: 如有表 studentid   name age   class1 张1 15     12 张2 15     ...

详解MySQL的用户密码过期功能

这篇文章主要为大家详细介绍了MySQL的用户密码过期功能的相关资料,需要的朋友可以参考下   Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包. ...

【Python之路Day12】网络篇之Python操作MySQL

pymysql是Python中操作MySQL的模块,使用方法和MySQLDB几乎一样. 1. 执行SQL语句 #!/usr/bin/env python3 # -*- coding: utf-8 -* ...

随机推荐

Coursera-Getting and Cleaning Data-Week2-课程笔记

Coursera-Getting and Cleaning Data-Week2 Saturday, January 17, 2015 课程概述 week2主要是介绍从各个来源读取数据.包括MySql ...

VS2010中汉字拷贝到Word出现乱码问题解决

VS2010中的汉字拷贝到Word时出现乱码,有三种解决方法: 一.粘贴时,选择“仅保留文本”.如图: 二.先拷贝粘贴到记事本文件内,此时会自动过滤格式信息,再从记事本拷贝到Word. 三.使用转换软 ...

Bootstrap系列 -- 22. 按钮详解

Bootstrap框架首先通过基础类名“.btn”定义了一个基础的按钮风格,然后通过“.btn-default”定义了一个默认的按钮风格.默认按钮的风格就是在基础按钮的风格的基础上修改了按钮的背景颜色 ...

MSMQ消息队列

MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一 ...

spoj 42

简单题   水水~~ /************************************************************************* > Author: x ...

The Suspects(POJ 1611 并查集)

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 30158   Accepted: 14665 De ...

JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象

一.仔细分析前面的原型模式创建对象的方法,发现原型模式创建对象,也存在一些问题,如下: 1.它省略了为构造函数传递初始化参数这个环节,结果所有实例在默认的情况下都将取得相同的属性值,这还不是最大的问题 ...

三千万数据量下redis2.4的一统计情况

先说一下工作场景,要求做一个服务,满足:处理千万级别数据,单个请求响应时间在20ms以下.由于是存储的数据格式为key:list[],所以很适合使用redis来存放数据,为了测试一下redis存储的效 ...

黄聪:史上最详细的kali安装教程没有之一

首先在vm里面新建虚拟机,直接选择典型,然后下一步.   1   2 然后到了这一步,选择中间的安装程序光盘镜像文件,然后去文件里面找你自己下载的镜像,这时候可能系统会出现无法检测此光盘镜像中的操作系 ...

Spring MVC 5 + Thymeleaf 基于Java配置和注解配置

Spring MVC 5 + Thymeleaf 注解配置 Spring的配置方式一般为两种:XML配置和注解配置 Spring从3.0开始以后,推荐使用注解配置,这两种配置的优缺点说的人很多,我就不 ...

mysql+rownumber的用法_Mysql 里面使用row_number() 的用法和注意相关推荐

  1. mysql+rownumber的用法_mysql中如何实现row_number

    创建一个学生表,插入10条数据CREATE TABLE student (id int, name varchar(20), score integer); INSERT INTO student V ...

  2. mysql的更新用法_mysql update语句的用法详解

    本节内容: mysql数据库中的update语句. 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr ...

  3. mysql回滚用法_Mysql误操作后利用binlog2sql快速回滚的方法详解

    前言 在日常工作或者学习中,操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2 ...

  4. mysql 模糊查询用法_mysql进阶(六)模糊查询的四种用法介绍

    mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...

  5. mysql中exeits用法_MySQL 8 在 Windows 下安装及使用

    MySQL 8 带来了全新的体验,比如支持 NoSQL.JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升.本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用 ...

  6. mysql关键字及其用法_mysql的优化-explain

    原文链接地址 [MySQL优化]--看懂explain_数据库_贾文静-CSDN博客​blog.csdn.net explain explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除过 ...

  7. mysql中limit用法_MYSQL中LIMIT用法?

    慕莱坞7535251 LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数.1)其语法格式如下:LIMIT[位置偏移量,]行数其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分 ...

  8. mysql的更新用法_mysql更新语句的详细用法

    首先,单个表的UPDATE语句: 更新[LOW_PRIORITY] [IGNORE] tbl_name SET col_name1 = expr1 [,col_name2 = expr2 ...] [ ...

  9. mysql 枚举 enum用法_mysql中的枚举类型ENUM的用法:

    mysql中的枚举类型ENUM的用法: (2010-06-18 13:44:13) mysql中的枚举类型ENUM的用法: mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中 ...

最新文章

  1. Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)
  2. LeetCode Same Tree
  3. Document,Node,Element,HTMLDocument ,HTMLCollection,HTMLElement,NodeList
  4. mybatis针对mysql自增主键怎样配置mapper
  5. 泛型委托Action与ActionT
  6. VirtualBox中的网络连接方式详解
  7. 二分(三分)+快速幂
  8. php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结
  9. VS2012手动关联xaml与CS文件
  10. 小白入门angular-cli的第一次旅程(学习目标 学习目标 1. 路由基础知识)补充学习...
  11. 微信小程序报Cannot read property ‘setData‘ of undefined的错误
  12. 阿里云服务器遭ddos攻击防御案例
  13. python亲和数_亲和数(示例代码)
  14. 程序猿没有副业,太难了(个人经历不喜无视)
  15. 工作几年了,还没成为“算法人上人”?
  16. 【ANDROID 】交叉编译链工具
  17. minio操作,文件上传下载
  18. MSP432E401Y学习笔记day1
  19. android 微博功能实现,Android SDK说明文档
  20. 11.Kuerbernetes

热门文章

  1. Tomcat常见面试题
  2. Hmailserver+webmail搭建邮件服务器
  3. 基于yolo5制作的AI识别FPS游戏自动化
  4. 阿里云GPU服务器安装深度学习环境
  5. WSL + Visual Studio Code 配置 Geant4
  6. VSCode 新建python虚拟环境
  7. 在线音乐玩儿三国杀,一统天下为时尚早
  8. bowtie2萌新使用手册
  9. jenkins 启动被杀死
  10. docker使用GPU(nvidia-docker)