Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить запрос 
:(
    Опции темы
DmitryTs
Дата 14.12.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 22.3.2007
Где: Moscow

Репутация: нет
Всего: нет



Есть массив значений из которого я составляю такой запрос:

Код

select * from pages where links like '%\'первый элемент первый\э% оr links like '%\'второй элемент первый\э%;

всё бы ничего только при большом размере массива получаются ужасающие запросы.. типа..

Код

select * from pages where links like '%\'1элемент первый\э% оr links like '%\'2элемент первый\э% оr links like '%\'3элемент первый\э% оr links like '%\'4элемент первый\э% оr links like '%\'5элемент первый\э% оr links like '%\'6элемент первый\э% оr links like '%\'7элемент первый\э% оr links like '%\'8элемент первый\э% оr links like '%\'9элемент первый\э% оr links like '%\'10элемент первый\э% оr links like '%\'11элемент первый\э% оr links like '%\'12элемент первый\э% оr links like '%\'13элемент первый\э% оr links like '%\'14элемент первый\э%


А можно ли как-то сократить это запрос чтоб каждый раз не писать or? К примеру как-то передать В like сразу несколько значений? 

M
skyboy
для форматирования программного кода пользуемся кнопкой "код"


Это сообщение отредактировал(а) skyboy - 14.12.2007, 19:58
PM MAIL   Вверх
Feldmarschall
Дата 14.12.2007, 19:28 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 3
Всего: 32



Нет, нельзя.
Непонятно, почему беспокоит размер запроса. Ты его руками набиваешь, что ли? Какая разница - через or, или не через or?
по-моему, беспокоить должен не размер длины строки с запросом, а неоптимальность такого чудовищного количества like-ов
PM   Вверх
skyboy
Дата 14.12.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(DmitryTs @  14.12.2007,  18:08 Найти цитируемый пост)
А можно ли как-то сократить это запрос чтоб каждый раз не писать or?

можно перейти к inner join'y на временную таблицу. с distinct'ом или group by для удаления дубликатов.
но это, пожалуй, ещё неоптимальнее, чем or'ы на like'ах. хотя, запрос, конечно, будет намного короче.
Цитата(Feldmarschall @  14.12.2007,  18:28 Найти цитируемый пост)
беспокоить должен не размер длины строки с запросом, а неоптимальность такого чудовищного количества like-ов

поддерживаю.
DmitryTs, может, аргументируешь необходимость столь сложного поиска? может, лучше отказаться от такой гибкости в пользу скорости?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.