在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n

例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢????

可能我们会用变量来解决,如下

SET @rownum:=0;
SELECT @rownum:=@rownum+1 AS rownum,a.* FROM t_s_base_user a;

如果在数据库中要用一句SQL语句来实现,这又改怎么办呢????

oracle数据库有专门的rownum来解决伪序列问题,但是mysql却到目前为止还没有内置的函数等来解决此问题

这个问题也困扰了我一段时间,到各种上发帖也没有能回答,最后在无意间找到了这种解决方法

SELECT @rownum:=@rownum+1 AS rownum, t_s_base_user.* FROM (SELECT @rownum:=0) r, t_s_base_user

把rownum的设置初值放到了from 和需要查询的表的前面

也许有人也会用到存储过程来解决,那也是一个方法,我曾经也用过,但是后来不能用存储过程了,就悲剧了

但是程序会报错“Parameter '@rownum' must be defined.”

这时在配置文件数据库链接串后面加上“Allow User Variables=True”,就好了

<!--mysql连接字符串-->
<add key="MySqlConn" value="Server=192.168.1.238;DataBase=gm;Uid=root;Pwd=000000;Allow User Variables=True;"/>

最新文章

  1. keras安装
  2. CDDA 源码解析
  3. hibernate id 策略
  4. 关于jquery简单操作简单表格
  5. CSS3动画里的过渡效果
  6. 一个URL链接到一个页面发生了什么?
  7. MordenPHP阅读笔记(一)——先跑再说,跑累了再走
  8. JavaScript对象属性赋值操作的逻辑
  9. 【译】用Fragment创建动态的界面布局(附Android示例代码)
  10. myeclipse添加源码支持
  11. 浅析Objective-C字面量
  12. svg学习笔记(一)
  13. NPOI 1.2.5 教程
  14. windows下安装bpython方法 (新)
  15. Linux基本命令总结(八)
  16. python-装饰器实现pv-uv
  17. spread与react
  18. threejs 空间位置转为屏幕像素xy位置
  19. Kafka 温故(四):Kafka的安装
  20. PHP:第三章——PHP中的回调函数

热门文章

  1. (转)[unity3d]easytouch的使用
  2. 深入剖析Android音频之AudioTrack
  3. LeetCode【7】.Reverse Integer--java实现
  4. spring boot测试工具(自带)
  5. 控制系统音量,自己定义MPVolumeView
  6. (链表)反转链表Reverse List
  7. struts2基础梳理(二)
  8. 修复损坏的 shapefile
  9. HBase数据迁移至Hive
  10. vim配置 高亮+自动缩进+行号+折叠+优化