mysql中的自动concat字符串长度如何选择

mysql中的自动concat字符串长度如何选择,mysql,string,if-statement,concat,Mysql,String,If Statement,Concat,但是,有没有其他方法可以将concat c1的c1代码简化为中间为零的结果,并自动计算必须添加多少个零?看看。这里可能有一个数学函数可以帮助您,尽管我不知道它是否更快 让我们看看。您需要将c1的单个值乘以1000000,然后将c2相加。 对于更一般的情况,您需要乘以 ex. c1, c2 = > result c1 c1 result 1 1 to 1000001 2 9 to 2000009

但是,有没有其他方法可以将concat c1的c1代码简化为中间为零的结果,并自动计算必须添加多少个零?

看看。

这里可能有一个数学函数可以帮助您,尽管我不知道它是否更快

让我们看看。您需要将c1的单个值乘以1000000,然后将c2相加。 对于更一般的情况,您需要乘以



 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` )))))

更多: 你的最终价值将是

  1000000 / 10^(char_length(`c1`)-1)

但是@eumiro的LPAD函数可能是一个更好的答案

只是尝试了一下,但是如果你有一个包含数字字符串的“文本”字段,你可以使用它进行计算。正如在你问题的第一条评论中所说,你可以/应该开始接受答案。如果您认为这是一个好的解决方案,请按绿色的“复选”标记。不仅是这个答案,还回答了前面的问题。@Paisal-你看到答案左上角附近的复选标记了吗?参见下图:
(c1 *  (1000000 / 10^(char_length(`c1`)-1))) + c2