Mysql select的简单问题!

问题描述

比如有这样一个查询数据的语句:select roleName,roleId from role order by roleAge;我现在想要给查询出的每一行上加一个序号,也就是说像这样一样:index roleName roleId 1 a 11 2 b 12 3 c 13 等等请问,我怎样在不在表role里增加字段的情况下,只用select语句就解决这个问题,求解答!! 问题补充:Rainbow702 写道

解决方案

SELECT (@rowNO := @rowNo+1) AS rowno,fname,fage,fsalary FROM (SELECT fname,fage,fsalary FROM t_employee ORDER BY fsalary) a ,( (SELECT @rowNo:=0) ) b;;打印结果:rownofnamefagefsalary1Stone221200.002Jane232200.883Jerry282300.804N272800.005Smith283900.006John235000.007Tina255200.368Kerry286200.009Tom258300.00注意如果用到排序,此时你必须先进行排序,把排序后的结果集作为一个续表,再次进行添加序号。通过适当修改,可以满足分页处理。SELECT (@rowNO := @rowNo+1) AS rowno,fname,fage,fsalary FROM (SELECT fname,fage,fsalary FROM t_employee ORDER BY fsalary) a ,( (SELECT @rowNo:=0) ) b LIMIT 0,5;打印结果:rownofnamefagefsalary1Stone221200.002Jane232200.883Jerry282300.804N272800.005Smith283900.00
解决方案二:
引用这个在有orderby的时候好像不行啊,得到的index会很大,不是想要的1,2,3,...啊~ 不会吧,这么邪门啊
解决方案三:
Select (@rowNum:=@rowNum+1) as index,roleName,roleIdFrom a,(Select (@rowNum :=0) ) b

时间: 2025-01-31 14:10:55

Mysql select的简单问题!的相关文章

Oracle 和 mysql 的一些简单命令对比参照

mysql|oracle Oracle 和 mysql 的一些简单命令对比参照 Oraclemysql对比版本Personal Oracle7 Release 7.3.4.0.0mysql 3.22.34-shareware-debug启动画面(点击放大)默认安装目录C:\ORAWIN95C:\MYSQL各种实用程序所在目录C:\ORAWIN95\BINC:\MYSQL\BIN控制台工具SVRMGR.EXESVRMGR23.EXEmysqladmin.exe数据库启动程序0start73.exe

PHP和MYSQL联合打造简单留言本程序

数据库结构:(库名:lyb)表一: admin字段: id(int11)   name(varchvr)   password(varchvr) 表二: lo字段: id(int11)   username(varchvr)  sex(varchvr)  qq(varchvr)  email(varchvr)  info(text)  ip(varchvr)  submit_time(datetime) 1 conn.php(连接数据库文件) <?phpmysql_connect("loc

Oracle和MySQL的一些简单命令对比

Oracle和MySQL的一些简单命令对比 SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> selec

MySQL临时表的简单用法详解

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. 临时表与内存表 内存表分为2种,但共同点是,重起数据库以后,内存中的数据全部丢失,内存表的功能有部分的限制,有些属性不能像正常表一样使用,所以请大家使用的时候谨慎参照官方文档.下面只是抛砖引玉. 1.临时表:表建在内存里,数据在内存里 2.内存表:表建在磁盘里,数据在内存里 MySQL临时表需要简

mysql 搜索之简单应用_php技巧

如何在MySQL中获得更好的全文搜索结果   作者: Techrepublic.com.com  2006-04-03 11:14:53  很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录.在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候. MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案.在此,开发者只需要简单地标

mysql SELECT FOR UPDATE语句使用示例_Mysql

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update 同

mysql SELECT FOR UPDATE 语句用法详解

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE 这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update

mysql SELECT查询的速度优化详解

总的来说,要想使一个较慢速select ... where更快,应首先检查是否能增加一个索引.不同表之间的引用通常通过索引来完成.你可以使用explain语句来确定select语句使用哪些索引.参见7.4.5节,"mysql教程如何使用索引"和7.2.1节,"explain语法(获取关于select的信息)". 下面是一些加速对myisam表的查询的一般建议: ·         为了帮助mysql更好地优化查询,在一个装载数据后的表上运行analyze table

MySQL与Mongo简单的查询实例代码_Mysql

首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多)直接切入主题 我想查询的内容是这样的:分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数 举这个实例来试试用MySQL和mongodb分别写一个查询 首先我们先做一些准备工作 MySQL的数据库结构如下 CREATE TABLE `new_schema`.`demo` ( `id` INT NOT NULL, `person` VARCHAR(45) NOT NULL, `score` VAR