在mysql select语句中使用每2个字符后在字符串中添加连字符

时间:2019-03-18 06:44:20

标签: mysql sql mysqli

我有一个带有一些数据的mysql表。因为我有一列(mobile_number),而该列的值就像手机号码(例如:1234587920)。

我预期的结果是:12-34-58-79-20

我想在每两个数字后添加连字符。

4 个答案:

答案 0 :(得分:1)

使用concat()连接字符串,并使用substr()在mysql中分割字符串:

从开始位置分割(列,开始,计数)选择列,用于计数字符

concat(column1,“-”,column2)将为column1-column2

InheritedWidget

答案 1 :(得分:0)

这将起作用:

SELECT concat(SUBSTRING("1234587920", 1, 2),"-",SUBSTRING("1234587920",3,2),"- 
",SUBSTRING("1234587920", 5, 2),"-",
SUBSTRING("1234587920", 7, 2),"-",
SUBSTRING("1234587920", 9, 2)) AS ExtractString;

对于您的表查询就像:

SELECT concat(SUBSTRING(mobile_number, 1, 2),"- 
",SUBSTRING(mobile_number,3,2),"-",SUBSTRING(mobile_number, 5, 2),"-",
SUBSTRING(mobile_number, 7, 2),"-",
SUBSTRING(mobile_number, 9, 2)) ExtractString from tablename;

答案 2 :(得分:0)

我一定会使用concat_ws()

select concat_ws('-',
                 substr(mobile_number, 1, 2),
                 substr(mobile_number, 3, 2),
                 substr(mobile_number, 5, 2),
                 substr(mobile_number, 7, 2)
                )

Here是db <>小提琴。

答案 3 :(得分:-1)

您可以尝试

select concat( right(phone_number,3) , "-" , mid(phone_number,4,3) , "-", right(phone_number,4)) from table