| h0x |
|---|
Здравствуйте, помогите пожалуйста составить правильны поисковый запрос к бд. Дело в том, что есть таблица с полями, в которой храниться информация о пользователях. Фамилия, Имя, Отчество, Страна, Регион, Город и т.д
Нужно составить поисковый запрос так, что бы он искал по всем эти полям человека не обращая внимания на последовательность введенных данных в инпут.
То есть если гость пишет Василий Петрович Забалодский или Петрович Забалодский Василий или Забалодский Василий Петрович или Россия, Забалодский Василий, Москва
то поиск должен работать и выдать нам этого человека, если на него есть какая то информация в бд. Не хотелось бы потерять из виду его.
Благодарю тех, кто поможет мне. Жду вашего ответа здесь или на email: h0x5x1@gmail.com |
Это не интересный поисковый запрос, это идиотский поисковый запрос.
Ты с самого начала нарушаешь целостность данных в твоей БД, а потом хочешь по ней что-то искать...
Ну... как бы дело твоё, но и проблемы все огребай сам тогда.
Целостность данных должна обеспечиваться ПРИ ВВОДЕ данных в БД, а не при запросе из неё.
А решается задача очень просто -- ты, вместо того, чтобы тешить себя иллюзиями, что в поле "Город" у тебя действительно город, а не отчество, заводишь ОДНО тексовое поле с данными, которые вводит пользователь, и строишь на это поле полнотекстовый индекс,
который потом используешь для полнотекстового запроса для поиска данных.
Для полнотестового поиска не обязательно использовать MySQL, можно использовать любой FTI.
Учти, что очень часть полнотекстовые индексы работают как off-line-овые, т.е. не обновляются после изменения каждой записи, а перестраиваются, скажем, раз в день.