樣品表使用SQL生成字符串
--------------------------- --------
| id | user | num | type | ---> Want to get | name |
--------------------------- --------
| 5 | 1 | 2 | Q | | Q2A |
--------------------------- --------
| 10 | 1 | 2 | Q | | Q2B |
--------------------------- --------
| 11 | 1 | 2 | Q | | Q2C |
--------------------------- --------
| 12 | 2 | 2 | Q | | Q2A |
--------------------------- --------
| 14 | 1 | 3 | R | | R3A |
--------------------------- --------
| 17 | 2 | 3 | R | | R3A |
--------------------------- --------
說明
我有一個簡單的數據庫架構上,如左圖所示。我需要使用SQL根據值生成給定的名稱列。我已經想出如何CONCAT(type,num)
,但我不知道如何生成正確的信件。我知道這樣的東西在SQL中是可能的,因爲我很久以前做過類似的事情。
編號方案 對於每個用戶,爲具有相同num
和type
更多的行被找到,字母應當從A-Z進步。將永遠不會有更多的26,所以處理這是不是一個問題
我想我可以先生成數字(即1,2,3而不是A,B,C),然後做一些沿着SELECT 1 FROM [A..Z]
,我只是不確定如何在MySQL中完成此操作。
UPDATE
If I can get from here: To:
--------------------------- --------------
| id | user | num | type | | name | seq |
--------------------------- --------------
| 5 | 1 | 2 | Q | | Q2 | 1 |
--------------------------- --------------
| 10 | 1 | 2 | Q | | Q2 | 2 |
--------------------------- --------------
| 11 | 1 | 2 | Q | | Q2 | 3 |
--------------------------- --------------
| 12 | 2 | 2 | Q | | Q2 | 1 |
--------------------------- --------------
| 14 | 1 | 3 | R | | R3 | 1 |
--------------------------- --------------
| 17 | 2 | 3 | R | | R3 | 1 |
--------------------------- --------------
Then its just a simple matter of using CHAR()
你能提供更多樣本數據嗎?你還會有Q3A,B和C嗎? – 2013-02-12 18:22:55
分配字母的邏輯是什麼?你的例子並不明顯。 – 2013-02-12 18:33:44
'| 11 | 1 | 2 | Q | | Q3A |'??? – SparKot 2013-02-12 18:34:36