"Релевантность" по числовым полям

e_moon

Новичок
"Релевантность" по числовым полям

Здравствуйте,

Помогите реализовать "релевантный" вывод, если это, конечно, возможно в такой таблице.

Запрос:

PHP:
SELECT * FROM mytable WHERE id>10 AND (field1 IN (1,2,3) OR field2 IN(3,4,5)) OR field3 IN(6,7,8))) ORDER BY ???
Мне нужно вывести записи в таком порядке, чтобы первыми шли те, которые соответствуют всем трем полям field1, filed2 и field3. Затем шли записи, которые соответствуют двум из трех. И в самом конце те записи, которые соответствуют только одному из трех полей.
 

Fortop

Новичок
[sql]
SELECT (CASE
WHEN field1 IN (1,2,3) AND field2 IN (3,4,5) AND field3 IN (6,7,8)
THEN 1
ELSE WHEN условие2 THEN 2
ELSE 3
END CASE) AS orderList
FROM mytable
ORDER BY orderList[/sql]
Корректный синтаксис CASE смотреть в мануале.
 
Сверху