Re: [PHP] Sorting mySQL query - one order from multiple fields

2009-07-26 Thread George Langley
	In case anyone else was wondering, the command to use is COALESCE()  
as in:


$theQuery = mysql_query(select variousFields from theTable where  
date = '$currDate' ORDER BY COALESCE(rotime2,rotime1,time));


COALESCE() will use one of the variables, being the one it finds a  
value for first, for each record. Note how this differs from a multi  
sort, which sorts by the first field, then subsorts by the second,  
third, etc.

Hope this helps someone.


George Langley
Multimedia Developer, Audio/Video Editor, Musician, Arranger, Composer

http://www.georgelangley.ca
-
On 14-Jun-09, at 8:30 PM, George Langley wrote:

	Hi all. Am trying to sort baseball games by time, where there can  
be up to 3 times listed per game.
	Each game has an original date and time field, plus fields for  
2 rain-out dates/times (rodate1 rotime1, rodate2, rotime2),  
to use if the game gets rained out. Note that rotime1 and rotime2  
are NULL if no time has been entered. Also note that the original  
date and time fields are not changed - they are kept for posterity.
	Usually, the rain-out date is set to a day that the teams were  
already going to play each other again, with the rain-out game  
going first. So need to sort those 2 games in order: rain-out  
first, then normally-scheduled.
	But, I can't just sort on the time field, as the rain-out game  
could now have a different time. I need to use the rotime2 (if it  
exists), else use the rotime1 (if it exists), else use the time.

Can not get my query order to work. One of the variations I've tried:

$theQuery = mysql_query(select variousFields from theTable where  
date = '$currDate' ORDER BY CASE WHEN rotime2 THEN rotime2 WHEN  
rotime1 THEN rotime1 ELSE time);


	Is there a query sort that will work in this case? Is not the  
usual sort by last name, then sort by first name scenario!

Thanks for any pointers.


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Sorting mySQL query - one order from multiple fields

2009-06-14 Thread George Langley
	Hi all. Am trying to sort baseball games by time, where there can be  
up to 3 times listed per game.
	Each game has an original date and time field, plus fields for 2  
rain-out dates/times (rodate1 rotime1, rodate2, rotime2), to  
use if the game gets rained out. Note that rotime1 and rotime2 are  
NULL if no time has been entered. Also note that the original date  
and time fields are not changed - they are kept for posterity.
	Usually, the rain-out date is set to a day that the teams were  
already going to play each other again, with the rain-out game going  
first. So need to sort those 2 games in order: rain-out first, then  
normally-scheduled.
	But, I can't just sort on the time field, as the rain-out game  
could now have a different time. I need to use the rotime2 (if it  
exists), else use the rotime1 (if it exists), else use the time.

Can not get my query order to work. One of the variations I've tried:

$theQuery = mysql_query(select variousFields from theTable where  
date = '$currDate' ORDER BY CASE WHEN rotime2 THEN rotime2 WHEN  
rotime1 THEN rotime1 ELSE time);


	Is there a query sort that will work in this case? Is not the usual  
sort by last name, then sort by first name scenario!

Thanks for any pointers.


George Langley
Multimedia Developer, Audio/Video Editor, Musician, Arranger, Composer

http://www.georgelangley.ca


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php