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 мая
Но наверное запрос медленный будет на больших наборах данных.
Или два селекта связаных UNION.
В первом условие city = 1 AND name LIKE мая
Во втором условие city <> 1 AND name LIKE мая
Спустя 4 минуты, 21 секунда (7.03.2012 - 09:36) ADiel написал(а):
Ну вообще можно. Если количество записей меньше 10, делаем второй запрос. Но хотелось бы sphinx прикрутить. Т.к. я в нем полный нуб, прошу помощи. Хотя бы подскажите, в какую сторону рыть мануал
_____________
Ищи меня тут (ilyaplot)