2014-10-10 79 views
0

我有一個索引字段和一個子索引字段,我需要連接以獲得一個id。SQL Concat和intvalue

我不能只是CONCAT兩個領域,因爲這樣它可以給雙值...

說我得到了指數18和子索引8它將給我188,並且也將指數1 togheter與分類指數88給我。

因爲我想要在值爲1-9的子索引字段中添加0。

有人可以幫我用這個語法。語言是MySQL和兩個表中有一個整型值..

分類指數之前,我要加一個0,如果值是1-9,CONCAT (指數,分類指數) AS IndexID爲

+0

......當'subindex'長到3個數字會發生什麼? (如果你的答案是「添加另一個'0',那麼......)如果你的數據庫中使用了id,爲什麼不把它作爲2列?如果它是用於_outside_你的數據庫,你應該最有可能產生一個特定的(單個)id用於這個目的(或者可能的格式化連接不同,如果這是id值從第一位開始的地方,但是它們最有可能是** string **,並且應該已經被輸入/存儲因此) – 2014-10-10 10:41:21

回答

0

您可以用例CONCAT爲組合下面。

WORKING FIDDLE HERE

SELECT 
`INDEX`,`SUB_INDEX`, 
(
    CONCAT 
    ((CASE WHEN `INDEX` <10 
     THEN CONCAT ('0' , `INDEX`) 
     ELSE `INDEX` 
     END) 
    , 
    (CASE WHEN SUB_INDEX <10 
     THEN CONCAT ('0' , `SUB_INDEX`) 
     ELSE SUB_INDEX 
     END) 
    ) 
) AS ID 
FROM MY_TABLE 
0
select CONCAT ( 
    if(`index`<10,CONCAT ('0' , `INDEX`),`INDEX`), 
    if(`subindex`<10,CONCAT ('0' , `subindex`),`subindex`)) as ID from Table1 

DEMO

+0

請在代碼中添加更多解釋,以便他人更容易理解您的解決方案。 – GameDroids 2014-10-10 10:09:50