Добавьте дефис в строку после каждых 2 символов, используя в операторе выбора mysql - PullRequest
1 голос
/ 18 марта 2019

У меня есть таблица mysql с некоторыми данными. В этом у меня есть столбец (mobile_number), и значение этого столбца похоже на номер мобильного телефона (например, 1234587920).

мой ожидаемый результат: 12-34-58-79-20

Я хочу добавить дефис после каждых двух чисел.

Ответы [ 4 ]

1 голос
/ 18 марта 2019

используйте concat () для объединения строк и используйте substr () для разделения строки в mysql:

split (column, start, count) выбрать столбец из начальной позиции для счетчика символов

concat (column1, "-", column2) будет column1-column2

SELECT CONCAT(SUBSTR(phone,1,2),'-',SUBSTR(phone,3,2),'-',SUBSTR(phone,5,2),'- 
',SUBSTR(phone,7,2),'-',SUBSTR(phone,9,2)) FROM `table`
0 голосов
/ 18 марта 2019

Я бы определенно использовал 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)
                )

Здесь - это дБ <> скрипка.

0 голосов
/ 18 марта 2019

это будет работать:

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;
0 голосов
/ 18 марта 2019

вы можете попробовать это

select concat( right(phone_number,3) , "-" , mid(phone_number,4,3) , "-", right(phone_number,4)) from table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...