I have a database like this:
|--------------------------------------------------------------------------|
| NAME | SCORE1 | SCORE2 | SCORE3 | SCORE4 | RATING |
|--------------------------------------------------------------------------|
| Joe Bloggs | -50 | 0 | -10 | -30 | 67 |
| Bob Bobbing | -30 | -10 | 0 | -10 | 74 |
| Marjorie Doors | 0 | -10 | -30 | -50 | 88 |
| etc... ------------------------------------------------------------------|
What I am trying to do is to find the highest-rated name for any given score position.
I do fine when there is only one score position possible:
SELECT name FROM db ORDER BY Score2 DESC, Rating DESC LIMIT 1
...gives me the highest-rated person with the best score for Score2.
What I now need is to find a way to combine two or more score columns (there are 23 in total) but still return the highest-rated person for any score combination given.
For example, if I wanted the highest-rated person for Score2 OR Score3, doing the above query gives me Joe Bloggs even though his rating is lower than Bob Bobbing's.
Similarly, if I wanted the highest-rated person for Score1 OR Score2 OR Score4, I'd still need to specify one of the scores to sort by first. I need a way to combine the results of all X columns specified, THEN sort by the combined score 'column', then by rating.