2016-10-22 2 views
-1

У меня есть много телефонных номеров, как это:Расщепление телефонные номера с пробелом каждые две цифры от конца или косой черты

030/942931862 
03361/23176635 

Я хочу, чтобы разделить их, как это:

0 30/9 42 93 18 62 
0 33 61/23 17 66 35 

Это означает, что Я хочу иметь пробел после двух цифр с конца. Но это должно «начать снова» на /. Средства 0 33 61/23 17 66 35 вместо 03 36 1/ 23 17 66 35.

Есть ли способ сделать это с помощью SQL в моей базе данных MySQL? В противном случае: Кто-нибудь знает PHP-решение?

+0

Являются ли эти два шаблона _only_ двумя шаблонами, которые у вас есть? –

+0

Нет, к сожалению, нет. Может быть больше или меньше цифр до и после косой черты. У вас есть идея? – David

+1

Вопрос кажется неадекватным представителем проблемы – Strawberry

ответ

1

Уродливый, как черт, но работает. Я не предполагал, что маркер (с каждой стороны) больше 10 символов.

Это ВЫБРАТЬ запрос:

SELECT concat_ws('/', LTRIM(concat_ws(' ', substr(concat(SPACE(10), substring_index(phone_number, '/', 1)), -10, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', 1)), -8, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', 1)), -6, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', 1)), -4, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', 1)), -2, 2))), LTRIM(concat_ws(' ', substr(concat(SPACE(10), substring_index(phone_number, '/', -1)), -10, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', -1)), -8, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', -1)), -6, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', -1)), -4, 2), substr(concat(SPACE(10), substring_index(phone_number, '/', -1)), -2, 2)))) 
FROM my_table; 

Это UPDATE запрос:

UPDATE my_table SET phone_number = (SELECT concat_ws('/',ltrim (concat_ws (' ',substr(concat(space(10),substring_index(phone_number,'/', 1)),-10,2),substr(concat(space(10),substring_index(phone_number,'/', 1)),-8,2),substr(concat(space(10),substring_index(phone_number,'/', 1)),-6,2),substr(concat(space(10),substring_index(phone_number,'/', 1)),-4,2),substr(concat(space(10),substring_index(phone_number,'/', 1)),-2,2))),ltrim (concat_ws (' ',substr(concat(space(10),substring_index(phone_number,'/',-1)),-10,2),substr(concat(space(10),substring_index(phone_number,'/',-1)),-8,2),substr(concat(space(10),substring_index(phone_number,'/',-1)),-6,2),substr(concat(space(10),substring_index(phone_number,'/',-1)),-4,2),substr(concat(space(10),substring_index(phone_number,'/',-1)),-2,2))))); 

Для использования вы должны изменить my_table к вашему имени таблицы и phone_number на ваше имя столбцов. Best делает это с помощью «поиска и замены» в редакторе кода.

+0

Кажется работать, спасибо. – David

Смежные вопросы