Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.09.2002, 21:25
|
|||
---|---|---|---|
|
|||
Помогите с запросом (LIKE, OR, AND... |
|||
#18+
Подскажите пожалуйста, в чем ошибка , и как можно оптимизировать данный запрос? Все работает хорошо без " OR ware LIKE %y% ". SELECT DISTINCT firma.firma_name, firma.id_firma FROM firma, ware, trading WHERE ware LIKE '%fara%' OR ware LIKE '%bas%' AND trading.id_ware=ware.id_ware AND firma.id_firma=trading.id_firma ORDER BY firma_name Около минуты думает и потом выводит весь список . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.09.2002, 02:56
|
|||
---|---|---|---|
|
|||
Помогите с запросом (LIKE, OR, AND... |
|||
#18+
Код: plaintext
MySQL не может воспользоваться индексами если в условии LIKE на первом месте стоит символ шаблона (%) Ему приходится перебирать все строки и каждую сравнивать с шаблоном. Если действительно это так необходимо, то ничего не остаётся делать как ждать. Но... MySQL сравнивает строки в порядке следования условий после WHERE. В твоём случае должно помочь следующее: Код: plaintext 1. 2. 3. 4. 5.
... обрати внимание на скобки. У AND приоритет выше, чем у OR. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1856318]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 114ms |
0 / 0 |