Jump to content


Sorting by a conditional statement possible?

  • Please log in to reply
1 reply to this topic

#1 akolson

  • New Members
  • Pip
  • Newbie
  • 4 posts

Posted 15 July 2006 - 12:27 AM

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.

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) DESC

LIMIT 100">

#2 akolson

  • New Members
  • Pip
  • Newbie
  • 4 posts

Posted 15 July 2006 - 12:52 AM

Never mind, I found it.  I just needed to use an ORDER BY LEAST(x,y) statement...


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users