我们有一张表,假如叫表A吧,里面有字段 C1,C2,C3,还有一列是流水号C4,就是我每次插入一条记录(是通过上传程序插入的,里面包括xml格式的字段C3),流水号就加1,插入的新的记录在最后一行。但是我们程序读的时候都要去读第一条,而我们要求读的是新插入的也就是最后一条。请问怎么来改变他们的顺序?
我现在的做法是把第一条的记录的内容update成最后一条,最后一条的update成第一条。这样做有一个弊端,就是流水号是无法update的。
我现在想问下,还有其它的方法实现我们插入的时候就插入到第一条的位置,或者是更简便的方法实现第一条和最后一条的换位?

解决方案 »

  1.   

    select top 1 * from tb order by c4 desc
      

  2.   

    看了三遍,没看懂你的具体需求。估计一楼也是。建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   

    恩 是我描述的太不清楚了,我重新描述下
    有表 tb
    c1      c2       c3     c4
    a         a        a        1
    b         b        b       2
    c          c        c       3
    ……       ……    ……    ……c4为流水号,我们不是直接操作数据插入数据的,而是用插入工具,插入数据后,流水号自动增加。
    我现在假如插入了 第三列,1.我想让它的位置在第一列现在的位置。或者 2 我想让第一列和第三列的位置互换。
    大家注意,流水号是不能互换的,我想问下有没有什么办法实现。
      

  4.   

    到底是列还是行? 
    你越说我越糊涂。原始状态
    ==================
    c1    c2     c3   c4
    a     a    a    1
    b     b    b     2
    c      c    c     3
    ==================你希望的结果是什么? 请不要再你的的文字来说明了,坦白的说你的语文估计只能有小学水平。
      

  5.   

    就是这个做法:select top 1 * from tb order by c4 desc对表的c4建立一个索引,倒序.
      

  6.   

    select top 1 * from tb order by c4 desc