Нужно отсортировать строки по определенным факторам, где каждый фактор влияет на вес записи в сортировке.
На MySQL код видится таким:
SELECT
*,
case
when column1 = 'какое то условие'
then -1000
else 0
end As Factor1,
case
when column2 = 'какое то условие'
then 100
else 0
end As Factor2,
case
when column3 = 'какое то условие'
then 200
else 0
end As Factor3,
(Factor1+Factor2+Factor3) as priority
ORDER BY priority;
Это оптимальное решение или можно через какую то временную переменную сделать расчеты?
Т.е. что то типа такого
(
tmpVar = 0;
if (column1 = 'какое то условие'){
tmpVar -= 1000;
}
if (column2 = 'какое то условие'){
tmpVar += 100;
}
if (column3 = 'какое то условие'){
tmpVar += 200;
}
return tmpVar;
) AS priority