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

  • Автор темы Автор темы e_moon
  • Дата начала Дата начала

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. Затем шли записи, которые соответствуют двум из трех. И в самом конце те записи, которые соответствуют только одному из трех полей.
 
[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 смотреть в мануале.
 
Сверху