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] Quote 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 Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.