2015-11-15 46 views
0

我有一個表格,它爲我的最新項目設置了很多「等級」。對於每個用戶,該表中有一行,其中有一堆enums。例如:在MySQL中獲取列名稱

userid | guardian | mage | assassin | hunter| 1 | 0 | 1 | 1 | 0 |

(有實際的數據庫了很多。)

現在在用戶個人資料,我想表現出他/她的行列。一般情況下我查詢它像這樣:

SELECT COUNT(id) AS id FROM ranks WHERE userid = 1 AND mage = 1

但因爲我有很多列在這裏,似乎有點勢不可擋。

有沒有辦法使用實際的列名?我爲我的後端使用PHP,只是你知道。

+0

爲什麼不正常化您的設計? – Strawberry

+0

@Strawberry將它標準化爲單列中的數據嗎? –

+0

@Strawberry你介意發表一個例子嗎? –

回答

1

歸一化的環境可能是這樣的:

userid*, character*, rank 
    1  guardian  0  
    1  mage   1 
    1  assassin  1 
    1  hunter  0 

* = (component of) PRIMARY KEY 

但我不打算解釋歸你。這是一個很大的話題,其他地方已經完全覆蓋了,我可能會犯一個錯誤。