Регулярные выражения в MySQL? или
Формулировка задачи:
В таблице есть поле Phone. Телефон в нем может храниться ну как душе угодно, например:
8(928)000-11-22
8 (928) 000-11-22
89280001122
+7 (928) 00-011-22
ну и т.д.
Варик как-то организовать поиск по номеру телефона при таких условиях? Или по-любому придется обрабатывать данные в php?
Но эта конструкция, как я понимаю, капец как грузит БД
Я чего нагуглил, кстати: поиск через что-то типа
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (Phone, ' ', ''), '-', ''), ' ', ''), ';', ''), ',', ''), ')', ''), '(', ''), '+', '')
Решение задачи: «Регулярные выражения в MySQL? или»
textual
Листинг программы
IF(Phone REGEXP '^[[:digit:]]{11}$', Phone, АДОВЫЕ_REPLACE)
Объяснение кода листинга программы
- Проверяется условие Phone REGEXP '^[[:digit:]]{11}$' (Номер телефона должен содержать ровно 11 цифр).
- Если условие истинно, переменной Phone присваивается значение АДОВЫЕ_REPLACE (что-то похожее на обработку ошибки или исключения).
- Если условие ложно, переменной Phone присваивается значение АДОВЫЕ_REPLACE (что-то похожее на обработку ошибки или исключения).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д