Mysql对查询结果添加序列号

 set @rownum=0;
 select  @rownum:[email protected]+1 as rownum,* from table1
:=和=的区别?
  1. "=",只有在set和update时才和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=
  2. ":=",不只在set和update时时赋值的作用,在select也是赋值的作用。

如果明白了=和:=的区别,那么也就理解了下边的现象。

@num:[email protected]+1,:=是赋值的作用,所以,先执行@num+1,然后再赋值给@num,所以能正确实现行号的作用。

@[email protected]+1,此时=是等于的作用,@num不等于@num+1,所以始终返回0,如果改为@[email protected],始终返回1了。mysql数据库中,用1表示真,0表示假。

原文地址:https://www.cnblogs.com/llljpf/p/8940059.html

时间: 2024-10-27 10:20:41

Mysql对查询结果添加序列号的相关文章

mysql查询结果添加序列号

第一种方法: select   (@i:[email protected]+1)   as   i,table_name.*   from   table_name,(select   @i:=0)   as   it 第二种方法: set @rownum=0;select @rownum:[email protected]+1 as rownum, t.username from auth_user t limit 1,5;

mysql的查询使用explain的讲解

摘自:http://www.jb51.net/article/33736.htm 在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快.如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择. explain 返回了一行记录,它包括了 select语句中用到的各个表的信息.这些表在结果中按照mysql即将执行的查询中读取的顺序列出来.mysql用一次

MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用

列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如下: SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1) 该例子在前文<MySQL 子查询subquery语法与用法实例>已有解释及数据实例,在此不再赘述. 列子查询中使用 IN.ANY.SOME 和 ALL 操作符 由于列子查询返回的结果集是 N 行一列,因此不能直接使用 = > <

MySQL 慢查询

简述: 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询 超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”. 它能记录下所有执行超过 long_query_time时间的SQL语句, 帮你找到执行慢的SQL,  方便我们对这些SQL进行优化. 在优化MySQL时,通常需要对数据库进行分析,常见的分析手段有 慢查询日志,EXPLAIN 分析查询, profiling分析 以及 show命令查询系统状态及系统变量,通过定位分析性

MySQL慢查询日志相关的配置和使用。

MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可以记录到慢sql了,实话讲,相比较sqlserver的trace或者扩展事件(虽然此二者的作用并非仅仅如此),MySQL的配置总是给人一种非常清爽的感觉. 1,慢查询日志的打开 正常情况下,只需要在配置文件中增加slow_query_log = 1配置,即打开慢查询日志,未指定slow_query_

Mysql 慢查询设置

Mysql慢查询设置 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”. ========================================================= 方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的. Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. mysql> show variables like 'lon

MySQl 子查询,左右连接,多表连接学习笔记

1.子查询是指在另一个查询语句中的SELECT子句. 例句: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement), SELECT column1 FROM t2 称为Sub Query[子查询]. 所以,我们说子查询是嵌套在外查询内部.而事实上它有可能在子查询内部再嵌套子查询. 子查询必须出现在圆括号之间. 行

Linux下MySQL慢查询分析mysqlsla安装使用

说明: 操作系统:CentOS 5.X 64位 MySQL版本:mysql-5.5.35 MySQL配置文件:/etc/my.cnf MySQL 数据库存放目录:/data/mysql 实现目的:开启MySQL慢查询日志功能,安装使用MySQL慢查询分析mysqlsla 具体操作: 一.开启MySQL慢查询功能 mysql -u  root -p  #进入MySQL控制台 show variables like '%slow%';   #查看MySQL慢查询是否开启 set global slo

MySQL联合查询

下面具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: 表A: ID Name 1 Tim 2 Jimmy 3 John 4 Tom 表B: ID Hobby 1 Football 2 Basketball 2 Tennis 4 Soccer 1.  内联结:Select A.Name, B.Hobby from A, B where A.id = B.id,这是隐式的内联结,查询的结果是: Name Hobby Tim Football Jimmy Bask