2015-10-17 66 views
0

我需要在列中找出相同值的數量並給它們一個序列號。 例如,如果我有一個表與數據的列d:MySQL:按外觀順序創建一個序列

d





Ç
Ç
d

我需要用數據的連續編號創建一個列S:

DS
A 1
A 2
乙1
A 3
B 2
的C 1
的C 2
d 1

正如你可以例如看到有是三個A,他們根據外觀順序得到一個數字。與其餘數據一樣。 我不是很熟悉SQL,有人可以幫忙嗎?

+3

你有任何其他的列,以確定例如你給的例子?如果沒有,那麼不能保證您將按照您在示例中提到的相同順序獲取數據。如果是,那麼也提供該欄目的詳細信息。 – Utsav

+0

SQL中的行沒有順序 – Strawberry

+0

然後每次執行查詢時結果可能會不同 –

回答

1

假設有在表中的id場決定行順序,可以使用下面的查詢,以獲得期望的結果:

SELECT id, D, (SELECT COUNT(*) + 1 
       FROM mytable AS t2 
       WHERE t1.D = t2.D AND t2.id < t1.id) AS S 
FROM mytable AS t1    

Demo here

+0

是的,這是我正在尋找的。現在,如果我使用LOAD DATA INFILE和一些自動增量字段,我保證通過它們在csv文件中的順序來獲取行嗎? – pankal

+0

如果'LOAD DATA INFILE'按照它們在excel文件中列出的順序將數據插入到表中,則確保auto_increment字段將反映該順序。 –