如何添加一个新行,将列数作为序列号计数

时间:2011-03-18 11:56:00

标签: mysql phpmyadmin

record of
id  fare    commission  routecode   vehicle number  productcode date    time    driver  owner name
15  12345   123 4533    1   3344    2011-03-18  00:00:00    yasir   saleem
20  a   a   3433    1   2333    2011-03-25  00:00:00    yasir   saleem
36  11111   11111   3433    1   2333    2011-03-25  16:13:12    yasir   saleem
9   1233    123 3433    nk-234  2333    2011-03-24  00:00:00    siddiq  aslam
21  1200    120 4533    nk-234  7655    2011-03-24  00:00:00    siddiq  aslam
22  1200    133333  0987    nk-234  2333    2011-03-11  00:00:00    siddiq  aslam
23  10000   11  4533    nk-234  7655    2011-03-19  00:00:00    siddiq  aslam
25  122 12  0987    nk-234  2333    2011-03-11  00:00:00    siddiq  aslam
26  1000    100 3344    nk-234  7655    2011-03-11  00:00:00    siddiq  aslam
27  1000    100 3344    nk-234  2333    2011-03-10  00:00:00    siddiq  aslam
34  100 10  3344    nk-234  2333    2011-03-18  00:00:00    siddiq  aslam
35  100 10  3344    nk-234  2333    2011-03-02  00:00:00    siddiq  aslam
5   1000    100 1234    wq1233  3344    2011-03-10  22:30:00    waqas   sami
6   2222    22  1234    wq1233  3344    2011-03-17  22:30:00    waqas   sami
24  a   a   4533    PSS-1234    7655    2011-03-02  00:00:00    salman  salam
42633   145175                          

我想在id之前添加另一列,用于计算

的数量

行。它应该从1开始,每行增加1。

5 个答案:

答案 0 :(得分:23)

如果你的意思是在SELECT语句中:

说你的选择是

select * from tbl

变成

select @n := @n + 1 RowNumber, t.*
from (select @n:=0) initvars, tbl t

注意:

  1. select @n:=0用于将全局变量重置为0
  2. @n := @n + 1每行增加1,从1开始。此列名为“RowNumber”

答案 1 :(得分:9)

向表mySerial添加新列myTable并将每行递增1(从'1'开始):

ALTER TABLE myTable ADD mySerial int(11) DEFAULT '0' NOT NULL;
SELECT @n:=0;
UPDATE myTable SET mySerial = @n := @n + 1;

答案 2 :(得分:0)

那么,您想要在每行中添加一个包含rowcount的列吗?这是不可能自动执行此操作,但您可以添加一个列并在每个插入(UPDATE table SET (rowcount = SELECT COUNT(*) FROM TABLE))上更新它,但我想知道您为什么要这样做?在我看来,你想解决一些问题,我认为必须有一个比添加rowcount列更好的解决方案。

答案 3 :(得分:0)

我不确定我是否完全理解您的问题,但要添加一个id前面的列运行此查询

ALTER TABLE `yourtablename` ADD `yournewfield` VARCHAR( 50 ) NOT NULL BEFORE `id` 

答案 4 :(得分:0)

您可以查看此博文:http://jimlife.wordpress.com/2008/09/09/displaying-row-number-rownum-in-mysql/

似乎有一个解决方案可以为查询结果添加行号,这可能会解决您的问题。