[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите оптимизировать запрос
art1804
Здравствуйте! есть такой не простой запрос:

$sql=mysql_query('SELECT * FROM `iss` WHERE `pec` IS NOT NULL OR
`id` =36 OR
`id` =37 OR
`id` =38 OR
`id` =51 OR
`id` =434 OR
`id` =435 OR
`id` =556 OR
`gep` IS NOT NULL OR
`bak` IS NOT NULL OR
`klb` IS NOT NULL OR
`prr` IS NOT NULL OR
`kom` IS NOT NULL
ORDER BY `nazv` ASC'
);


Нужна помощь в:
1. дополнить его каким-то выражением, чтобы в результате выборки не выводились некоторые id. (например id 223, 345 и тд.)
2. как-то его можно оптимизировать?



Спустя 6 минут, 35 секунд (16.06.2011 - 11:52) linker написал(а):
SELECT 
*
FROM
`iss`
WHERE
(
`id` IN (36, 37, 38, 51, 434, 435, 556) OR
`pec` IS NOT NULL OR
`gep` IS NOT NULL OR
`bak` IS NOT NULL OR
`klb` IS NOT NULL OR
`prr` IS NOT NULL OR
`kom` IS NOT NULL
)
AND
`id` NOT IN (223, 345)
ORDER BY
`nazv` ASC
Вызывает сомнение логическая обоснованность такого количества OR, хотя...

Спустя 8 минут, 39 секунд (16.06.2011 - 12:00) art1804 написал(а):
Огромное человеческое СПАСИБО!

Спустя 4 минуты, 38 секунд (16.06.2011 - 12:05) Семён написал(а):
А откуда ты взял `id` NOT IN (223, 345)
Может я чёто не вкурил? )))
ааа всё увидел
Цитата
1. дополнить его каким-то выражением, чтобы в результате выборки не выводились некоторые id. (например id 223, 345 и тд.)

Спустя 44 секунды (16.06.2011 - 12:06) linker написал(а):
Отсюда
Цитата
1. дополнить его каким-то выражением, чтобы в результате выборки не выводились некоторые id. (например id 223, 345 и тд.)

Спустя 2 часа, 55 минут, 34 секунды (16.06.2011 - 15:01) art1804 написал(а):
Еще подскажите, пожалуйста, если мне нужно исключить диапазон id, то как это сделать?

... and `id` not in (100><150)... не помогает.

Спасибо.

Спустя 50 минут, 31 секунда (16.06.2011 - 15:52) art1804 написал(а):
Спасибо. разобрался сам. Просто написал функцию и вывел цифровой ряд, который потом вставил куда надо. может это и не правильно, но...

Спустя 11 минут, 54 секунды (16.06.2011 - 16:04) linker написал(а):
...
AND
NOT
(`id` BETWEEN 100 AND 150)
...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.