UPD:
немного неверно написал ранее, т.к. это поиск по части номера, то естественно надо LIKE
$sql = "SELECT * FROM tbl WHERE replace(replace(replace(replace(phone,'(',''),')',''),' ',''),'-','') LIKE concat(replace(replace(replace(replace('".$num."','(',''),')',''),' ',''),'-',''), '%')";
UPD2:
PS:
Не совсем понимаю как это реализовать с помощь полнотекстового поиска.
а зачем вообще реализовывать это с помощью полнотекстового поиска??
если номер телефона хранится в отдельном поле, в определенном формате?
- либо приводите обе стороны "искомого" к одному формату (т.е. удаляете все лишнее) как например выше.
- либо, если номера в базе хранятся в одном формате приводите искомый (вводимый) номер к формату хранения в базе + знак % и поиск LIKE
- либо делаете поиск через REGEXP соответствующим образом формируя рег.выражение из PHP
но это несколько сложнее, надо ее динамически формировать в зависимости от введенных цифр.
вот регулярка для проверки телефона практически в любом варианте написания:
^\+?7[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{2}[ -]?\d{2}$
под MySQL сами перепишите... см. ссылку выше, там другие классы символов.
- либо, если все же таки нужен полнотекстовый поиск, то искомое значение НЕОБХОДИМО приводить к формату в базе и искать отформатированное значение