Добрый День, Всем! У меня есть БД по номерам телефонов. Мне нужно сделать быстрый поиск по ключевому слову. То есть, есть таблица list, в которой есть следующие столбцы: country, city, tel, last name, comment etc. Мне нужно, чтобы, когда я ввел в поле поиск любое значение, оно искало все совпавшие с ним значение в каждом столбце и выводило мне результат поиска, при этом чтобы не дублировались записи. Обычный запрос такого вида не работает тут: Select * from list where country like ‘%$key%’ or city like ‘%$key%’ or tel like ‘%$key%’ or last_name like ‘%$key%’ or comment like ‘%$key%’ Я пробовал еще такой вариант: $rezul = mysql_query (Select * from list where country like ‘%$key%’); $resul_final = mysql_fetch_array($rezul); Вывожу все в цикле: $rezul = mysql_query (Select * from list where city like ‘%$key%’); $resul_final = mysql_fetch_array($rezul); Вывожу все в цикле: Но тут у меня появляются дублирующие записи. Подскажите, пожалуйста, как это можно сделать?
Select * from list where country like ‘%$key%’ or city like ‘%$key%’ or tel like ‘%$key%’ or last_name like ‘%$key%’ or comment like ‘%$key%’ GROUP_BY `id` не подходит?
Что бы записи были уникальны после слова SELECT нужно указать ключевое слово - DISTINCT. А в целом конструкцию с LIKE '%$var%' лучше не использовать ибо в такое случае не используется индекс для поиска и соответсвенно искать будет долго. Можно конечно все поля проиндексировать для полнотекстового поиска, либо создать еще одно поле куда будут входить все значения полей и уже по нему сделать fulltext индекс и по нему опять же искать.
Vincent здесь вообще странно. зачем, например, искать название города в поле номера? стоит наверное сделать настройку параметров поиска. так оно лучше будет.... а ваш последний вариант мне понравился=)
Спасибо большое всем. Я так и оставил этот вариант: Select * from list where country like ‘%$key%’ or city like ‘%$key%’ or tel like ‘%$key%’ or last_name like ‘%$key%’ or comment like ‘%$key%’ Так как все равно я его использую этот запроса для быстрого поиска. То есть поиск информации по осуществляться должен был по ключевому слову.
Сорри за каламбур. Очень спешил когда писал. Так как это запрос используется для быстрого поиска. То есть поиск информации осуществляется по ключевому слову. И как раз получается, если хоть что-то попадает под этот запрос он выводит мне его.