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。
如果你的意思是在 SELECT 语句中:
说你的选择是
select * from tbl
变成
select @n := @n + 1 RowNumber, t.*
from (select @n:=0) initvars, tbl t
备注:
select @n:=0
用于将全局变量重置为0@n := @n + 1
从 1 开始,每行加 1。此列名为“RowNumber”向表
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;
所以,您想在每一行中添加一列,其中包含行数?不可能自动执行此操作,但您可以添加一列并在每次插入时更新它 (
UPDATE table SET (rowcount = SELECT COUNT(*) FROM TABLE)
),但我想知道您为什么要这样做?在我看来,您想解决一些问题,我认为必须有比添加行数列更好的解决方案。
我不确定我是否完全理解你的问题,但是要在 id 前面添加一列运行这个查询
ALTER TABLE `yourtablename` ADD `yournewfield` VARCHAR( 50 ) NOT NULL BEFORE `id`
您可能想看看这篇博文:http://jimlife.wordpress.com/2008/09/09/displaying-row-number-rownum-in-mysql/
似乎有一种在查询结果中添加行号的解决方案,这可能会解决您的问题。
以下语句使用 ROW_NUMBER() 函数为产品表中的每一行分配一个序列号:
链接在这里试试这个:row_number
row_number() over(order by column_name)
例子: 选择 ROW_NUMBER() 超过( 按产品名称订购 )行号, 产品名称, 厂商建议零售价 从 产品 订购方式 产品名称;