Задавайте вопросы, мы ответим
Вы не зашли.
Не могу придумать как организовать поиск по маске телефона в mysql.
Есть таблица, хранящая номера мобильных телефонов (всегда 10 цифр) — примерно 2 миллиона записей.
Нужно организовать поиск по этим номерам с помощью масок
Маска номера может содержать от 1 до 7 латинских букв (A-B-C-D-E-F-G) или цифры от 0 до 9
Неактивен
Неактивен
можно более наглядный пример
Неактивен
приведите пример тестовых данных
create table..
insert into..
и что должен вернуть запрос при заданных входящих параметрах
Неактивен
CREATE TABLE `tbl_phones` (
`id` int(11) NOT NULL,
`phone` varchar(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
вот таблица в которой хранятся номера телефонов формат только цифры 918 000 0 000 (пробелов нет) при поиске нужно вернуть id номеров
Неактивен
а в качестве критерия поиска что?
Неактивен
должна быть маска
Маска номера может содержать от 1 до 7 латинских букв (A-B-C-D-E-F-G) или цифры от 0 до 9
т.е. к примеру если указано для поиска AABBCC* то он должен искать цифры две одинаковые (АА)+две одинаковые(ВВ но не равные АА)+СС(две одинаковые но не равные АА и ВВ)+любое число
Неактивен
имхо, регуляркой в mysql такого не написать
используйте https://dev.mysql.com/doc/refman/5.7/en … ion_substr
первый символ равен второму, 3ий = 4ому, но не равен 1ому и т.д.
зачем utf8 если хранятся только цифры?
Неактивен
можно переделать в любой тип хранения данных
Неактивен
на php для маски ABC-ABC
регулярка будет /^(\d)((?!\1)\d)((?!\1|\2)\d)-\1\2\3$/ но как подобное в mysql запросы добавить
Неактивен
как запрос для составить,
может есть возможность искать по одинаковым символам к примеру если искать ААА то он будет искать все 111,222,333,444,555... в поле номер
Неактивен
Давайте я вам подыграю и напишу
Неактивен
все очень просто есть большая база телефонов и по ней необходим поиск с учетом масок
Неактивен