16. november 2004 - 12:59Der er
5 kommentarer og 1 løsning
order by virker ikke helt
jeg har en query her:
$sql = "SELECT track.*, SUM(user_top5.points) AS points, hitlist.last_week FROM ($DB.eb_track track LEFT JOIN $DB.eb_user_top5 user_top5 ON track.id=user_top5.track_id) LEFT JOIN $DB.eb_hitlist hitlist ON track.id=hitlist.track_id WHERE user_top5.time>$exceed_time GROUP BY track.id ORDER BY points DESC, hitlist.last_week";
ved ikke lige om man kan overskue meningen i det? men hvis points er ens skal den sortere efter last_week, men KUN hvis last_week er over 0
ORDER BY points DESC, IF(hitlist.last_week>0, hitlist.last_week, 9999999)
Det vil lægge de poster hvor last_week>0 først, og dem hvor den er mindre eller lig 0 til sidst. Du skal så godt nok checke værdien af last_week når du får resultaterne og bestemme dig for hvad du vil gøre med dem hvor den er <=0.
$sql = "SELECT track.*, SUM(user_top5.points) AS points, hitlist.last_week FROM ($DB.eb_track track LEFT JOIN $DB.eb_user_top5 user_top5 ON track.id=user_top5.track_id) LEFT JOIN $DB.eb_hitlist hitlist ON track.id=hitlist.track_id WHERE user_top5.time>$exceed_time GROUP BY track.id ORDER BY points DESC, IF(hitlist.last_week>0, hitlist.last_week, 999)";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.