zoukankan      html  css  js  c++  java
  • MySQL使用伪列

    在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,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;"/>
  • 相关阅读:
    C# 调用外部程序Process类
    Wix学习整理(1)——快速入门HelloWorld
    InstallShield修改XML配置文件
    小公式
    EOJ11月月赛
    长春
    贪心[偏序+treap]
    哈希
    莫比乌斯反演
    Android 编程规范
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/7866479.html
Copyright © 2011-2022 走看看