2014-10-10 78 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