Добрый день!
Имеется таблица с данными по заказам, в ней содержится поле Телефон. Необходимо извлечь информацию по заказам и сгруппировать их по данному полю, но есть одно НО: телефон пользователи вводили без маски ввода, поэтому встречаются следующие записи:
79102222222
89102222222
9102222222
Телефон одного и того же клиента, но он записал его по разному. Как в данном случае учесть разный набор символов и объединить заказы данного клиента?
В поле встречаются и другие номера, городские, не только сотовые
2) Либо подменять на лету в mysql:
если цифр 10, то добавляем 7 вначале или если цифра отличная от 7 или 8.
если цифра 8 в начале, то меняем ее на 7
Я думаю этого будет достаточно чтобы сделать правильную выборку. Потом при наличии дополнительных условий - добавлять их в код
3) валидировать при вводе, оформлении заказа телефона. Повесить это на менеджера.
Валидировать при вводе - уже сделано, надо разобраться с теми, которые были введены ранее, до маски ввода. Подскажите, какими командами можно выполнить пункт 2?
SELECT
case LENGTH(phone)
WHEN 10
THEN CONCAT('7', phone)
WHEN 11
THEN IF( SUBSTRING(phone, 1, 1) = '8', CONCAT( '7', SUBSTRING(phone, 2, 11) ), phone )
ELSE phone
END as phone
FROM phones