Марк Г.
115 сообщений
#12 лет назад
Нужно реализовать поиск телефонных номеров по маске в базе данных на Mysql, например, 89055A2A или 8905AABB.

Есть ли описание или пример реализации такого поиска? База данных содержит около 10000 номеров.
Артем Л.
11416 сообщений
#12 лет назад
Вы можете использовать для этого к примеру регулярные выражения
Роман С.
15 сообщений
#12 лет назад
Select ... from ... where ... LIKE 89055%2%
Марк Г.
115 сообщений
#12 лет назад
Цитата ("Hungry_Hunter"):
Вы можете использовать для этого к примеру регулярные выражения ]http://mysql.ru/docs/man/Regexp.html

Там нет backreferences. В этом и сложность.
Евгений О.
263 сообщения
#12 лет назад
Цитата ("Jason_Bourne"):
...
Там нет backreferences. В этом и сложность.

Это не совсем так. Из
Цитата:
В MySQL используется расширенная версия предложенной Генри Спенсером (Henry Spencer) реализации регулярных выражений, которая ориентирована на соответствие POSIX 1003.2.

В man 7 regex:
Цитата:
Finally, there is one new type of atom, a back reference: `\' followed by a non-zero decimal digit d matches the same sequence of characters matched by the dth parenthesized subexpression (numbering subexpressions by the positions of their opening parentheses, left to right), so that (e.g.) `\(\)\1' matches `bb' or `cc' but not `bc'.

Т.е. обратный ссылки вводятся выражениями \1, \2 и т.д. Другое дело, что регулярные выражения в mysql работали ужасающе медленно, поэтому, имеет смысл проверить время выполнения команд построенных с использованием регулярных выражений.