首先,我不問在結果返回給你之後如何獲得當前行號。MySQL - 記錄集中的行號?
我想知道,是否可以將行號作爲MySQL結果中返回的列之一?我想要做的是添加一個數字,以增加每一行。就像這樣:
| id | myNum | name |
+----+-------+------+
| 34 | 1 | John |
| 24 | 2 | Alex |
| 56 | 3 | Brad |
etc...
我猜它會涉及存儲過程,但我不知道是否有可能沒有他們...
首先,我不問在結果返回給你之後如何獲得當前行號。MySQL - 記錄集中的行號?
我想知道,是否可以將行號作爲MySQL結果中返回的列之一?我想要做的是添加一個數字,以增加每一行。就像這樣:
| id | myNum | name |
+----+-------+------+
| 34 | 1 | John |
| 24 | 2 | Alex |
| 56 | 3 | Brad |
etc...
我猜它會涉及存儲過程,但我不知道是否有可能沒有他們...
select table.*,@rn:[email protected]+1 as row_num
from table,(select @rn:=0) as r order by field_you_like
select @n := @n + 1 mynum, t.*
from (select @n:=0) initvars, tbl t
你的意思是'select @n:= @n + 1 AS mynum'而不是'select @n:= @n + 1 mynum'沒有'AS'嗎?如果沒有,爲什麼要這樣工作? – 2012-02-27 13:41:15
@smhnaji:在指定什麼是「SELECT」或什麼表選擇「FROM」時,「AS」是可選的:'SELECT t.num number FROM table t'是一個有效的查詢。 – 2012-03-01 23:07:57
+1打我給它。 – xbrady 2012-02-14 23:22:48
啊輝煌!你不必提前聲明變量或類似的東西? – 2012-02-14 23:26:06
@Jakobud:不,這不是必要的。你可以在同一個查詢中初始化它。 ;) – 2012-02-14 23:31:13