[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск адреса в базе
ADiel
Имеется 2 таблицы.
1 - city: id, name
2 - street: id, city, name

Таблица street связана с city.
Хочу сделать поиск, что бы в sql запрос в таблицу street вставлять city и поисковый запрос, а получить хочу записи не только для заданного city, но и для других значений что бы заданный город был первым. Очень не хочется делать переборы в php, потому что база большая, а нужно вытащить лишь первые 10 - 15 результатов.

Вот пример того, что в базе и того, что я хочу увидеть

city:
1, Сергиев посад
2, Хотьково
3, Москва

street:
1, 1, Маяковского
2, 1, Куйбышева
3, 1, Хотьковский проезд
4, 2, Маяк
5, 1, 3 Мая


хочу получить следующее:
ввожу city = 1, name = LIKE мая
1, Сергиев посад, Маяковского
5, Сергиев посад , 3 Мая
4, Москва, 2, Маяк

Может быть сортировать по ABS(MIN(city - $city)) и по строке name ?



Спустя 5 минут, 24 секунды (7.03.2012 - 09:26) ADiel написал(а):
А если sphinx умеет это делать, буду очень благодарен за пример конфига.

Спустя 6 минут, 18 секунд (7.03.2012 - 09:32) Visman написал(а):
Тогда уж просто ABS(city - $city)
Но наверное запрос медленный будет на больших наборах данных.

Или два селекта связаных UNION.
В первом условие city = 1 AND name LIKE мая
Во втором условие city <> 1 AND name LIKE мая

Спустя 4 минуты, 21 секунда (7.03.2012 - 09:36) ADiel написал(а):
Ну вообще можно. Если количество записей меньше 10, делаем второй запрос. Но хотелось бы sphinx прикрутить. Т.к. я в нем полный нуб, прошу помощи. Хотя бы подскажите, в какую сторону рыть мануал


_____________
Ищи меня тут (ilyaplot)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.