ex. c1, c2 = > result
c1 c1 result
1 1 to 1000001
2 9 to 2000009
3 1 to 3000001
21 34 to 2100034
22 35 to 2200035
23 55 to 2300055
111 1234 to 1111234
112 8392 to 1128392
113 2833 to 1132833
a part of my MySQL SELECT CONCAT() statement with cut out "c1" look like,
IF(CHAR_LENGTH(`c2`)=1, concat('00000',`c2`),
IF(CHAR_LENGTH(`c2`)=2, concat('0000',`c2`),
IF(CHAR_LENGTH(`c2`)=3, concat('000',`c2`),
IF(CHAR_LENGTH(`c2`)=4, concat('00',`c2`),
IF(CHAR_LENGTH(`c2`)=5, concat('0',`c2`),`c2` )))))
但是有没有其他方法可以减少concat c1的代码c1到结果,中间为零,并自动计算必须添加多少个零?
答案 0 :(得分:1)
请看LPAD。
答案 1 :(得分:1)
可能有一个数学函数可以帮助你,虽然我不知道它是否更快。
让我们看看。您想将c1的单个值乘以1000000,然后添加c2。 对于更一般的情况,您希望乘以
1000000 / 10^(char_length(`c1`)-1)
更多: 您的最终价值将是
(c1 * (1000000 / 10^(char_length(`c1`)-1))) + c2
但是来自@eumiro的LPAD功能可能是一个更好的答案