|
Помогите с запросом (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 Около минуты думает и потом выводит весь список . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 21:25 |
|
Помогите с запросом (LIKE, OR, AND...
|
|||
---|---|---|---|
#18+
Код: plaintext
MySQL не может воспользоваться индексами если в условии LIKE на первом месте стоит символ шаблона (%) Ему приходится перебирать все строки и каждую сравнивать с шаблоном. Если действительно это так необходимо, то ничего не остаётся делать как ждать. Но... MySQL сравнивает строки в порядке следования условий после WHERE. В твоём случае должно помочь следующее: Код: plaintext 1. 2. 3. 4. 5.
... обрати внимание на скобки. У AND приоритет выше, чем у OR. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2002, 02:56 |
|
|
start [/forum/topic.php?fid=47&fpage=715&tid=1856318]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 269ms |
total: | 383ms |
0 / 0 |