Uzz
Постоялец
- Регистрация
- 3 Янв 2007
- Сообщения
- 92
- Реакции
- 51
- Автор темы
- #1
Задача такая
есть база, например 1 поле там - imya содержит такие значения 22334:55667 итд в таком формате записи. Есть поисковый запрос вида <rtfm:22334:55667>,<rtfm:44556:78899>,<rtfm:1111:22222> итд. Собственно задача - при таком запросе - вывести только то, что имеется в базе при совпадении.
Решение, которое представляется мне: во первых очищаю запрос от запятых скобок итд и вношу в одномерный массив. Далее в цикле по размеру массива прогоняю поиск
SELECT * FROM taba WHERE imya = '22334:55667'
результаты опять в массив и после вывод общего результата поиска.
Так что думаю - какая проблема может возникнуть - нагрузка на базу будет колоссальная - ведь от одного запроса будет возникать целая куча побочных запросов. Может как индекс настроить в базе? Или в принципе алгоритм переосмыслить чтобы за один проход собирал результаты?
База на 35 тысяч таких записей. Поиск только полное совпадение.
есть база, например 1 поле там - imya содержит такие значения 22334:55667 итд в таком формате записи. Есть поисковый запрос вида <rtfm:22334:55667>,<rtfm:44556:78899>,<rtfm:1111:22222> итд. Собственно задача - при таком запросе - вывести только то, что имеется в базе при совпадении.
Решение, которое представляется мне: во первых очищаю запрос от запятых скобок итд и вношу в одномерный массив. Далее в цикле по размеру массива прогоняю поиск
SELECT * FROM taba WHERE imya = '22334:55667'
результаты опять в массив и после вывод общего результата поиска.
Так что думаю - какая проблема может возникнуть - нагрузка на базу будет колоссальная - ведь от одного запроса будет возникать целая куча побочных запросов. Может как индекс настроить в базе? Или в принципе алгоритм переосмыслить чтобы за один проход собирал результаты?
База на 35 тысяч таких записей. Поиск только полное совпадение.