在MySQL中的字段值中插入分隔符字符串

时间:2017-06-21 07:59:46

标签: mysql

我有这个使用MAX和LPAD生成的值

结果: enter image description here

我想要的是在每个第3个数字之后加上短划线,就像 000-000-002 ,但我不知道该怎么做。请帮帮我。

先谢谢你了!

4 个答案:

答案 0 :(得分:2)

使用php wordwrap()函数将特定字符放在字符数之后。wordwrap()函数在达到特定长度时将字符串换行为新行。

$output = wordwrap($orNumber,3,'-',true);
  

注意:此函数可能会在行的开头留下空格。因此,您必须修剪数据以删除空格

您可以在PHP wordwrap()

查看手册

答案 1 :(得分:1)

MySQL:

set @var ='000000002';
select  CONCAT_WS('-', SUBSTR(@var , 1, 3), SUBSTR(@var, 4,3), SUBSTR(@var, 7))

这只接受varchar。对于int值,以0开头的数字不会给出正确的错误。因此建议在PHP方面处理。

答案 2 :(得分:1)

set @chr = '000000002';

select @chr,
         concat(substring(@chr,1,3),'-',substring(@chr,4,3),'-',substring(@chr,7,9)) hyphenated

结果

+-----------+-------------+
| @chr      | hyphenated  |
+-----------+-------------+
| 000000002 | 000-000-002 |
+-----------+-------------+
1 row in set (0.00 sec)

答案 3 :(得分:1)

如果长度总是固定,您可以使用LEFT(), MID()RIGHT()

update TABLE_NAME set orNumber = CONCAT(LEFT(orNumber, 3), '-' , MID(orNumber, 4, 3), '-' ,RIGHT(orNumber, 3))

docs

上查找更多内容