akolson Posted July 15, 2006 Share Posted July 15, 2006 I've got a table with two timestamp columns per row. I'd like to sort all rows using the lesser of the two timestamps for each row.I'm getting an error on a statement that tries to use ORDER BY with an IF(x>y,y,x) statement. Is there some other way to do this?Here's the actual situation and the script I've tried if it helps...Situation: Each row is an entry pulled from several RSS feeds and if someone is future dating their posts I want to substitute in the 'added' timestamp instead of the 'published' timestamp whenever the published date is greater than the added timestamp.[code]SELECT e.cid, e.id, e.url, e.title, SUBSTRING( e.description, 1, 250 ), IFNULL(e.pubdate, e.added), f.siteurl, f.title, IF (length( e.description ) =0, '', concat( substring( e.description, 1, 75 ) , '...' ) )FROM feeds_item e INNER JOIN feeds_channels f ON (e.cid = f.id) ORDER BY IF(e.pubdate>e.added,e.added,e.pubdate) DESCLIMIT 100">[/code] Link to comment https://forums.phpfreaks.com/topic/14629-sorting-by-a-conditional-statement-possible/ Share on other sites More sharing options...
akolson Posted July 15, 2006 Author Share Posted July 15, 2006 Never mind, I found it. I just needed to use an ORDER BY LEAST(x,y) statement...http://www.phpfreaks.com/forums/index.php/topic,25731.0.html Link to comment https://forums.phpfreaks.com/topic/14629-sorting-by-a-conditional-statement-possible/#findComment-58219 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.