Можно ли улучшить запрос

pilot911

Новичок
Можно ли улучшить запрос

Необходимо вывести записи с id: 1,10,30, а потом все остальные

делаю для этого

[sql]
SELECT
id
FROM
property
ORDER BY IF(FIELD(id, 1,10,30)>0, FIELD(id, 1,10,30), id+1000000)

[/sql]

можно ли улучшить этот запрос ?
 

Wicked

Новичок
order by id in (1, 10, 30) desc, id asc

тока непонятно, с какой точки зрения тебе его нужно улучшить :)

-~{}~ 19.04.09 10:31:

так может будет побыстрее:
(SELECT id
FROM property
WHERE id IN (1, 10, 30)
ORDER BY ID)
UNION ALL
(SELECT id
FROM property
WHERE id NOT IN (1, 10, 30)
ORDER BY ID)
 

Wicked

Новичок
кстати, что мешает поднимать нужные записи наверх на стороне пхп?
 

Wicked

Новичок
а я сомневаюсь

особенно если на стороне пхп это сделать правильно: хэш $all с id записей в качестве ключей и один простой цикл
PHP:
foreach($first_ids as $id) {
  $ordered[$id] = $all[$id];
  unset($all[$id]);
}
$ordered += $all;
 

vinslave

Новичок
а как жто вообще может работать?
ORDER BY IF (
FIELD( id, 1, 10, 30 ) > 0, FIELD( id, 1, 10, 30 ) , id + 1000000
)
здесь указывается номер столбца, по которому делается сортировка? В таблице "property" более 1000000 столбцов??
 

zerkms

TDD infected
Команда форума
vinslave
выведи каждый из операндов в SELECT и подумай.

ps: id + 1000000 <--- аццкое ололо
 
Сверху