Jump to content

Archived

This topic is now archived and is closed to further replies.

akolson

Sorting by a conditional statement possible?

Recommended Posts

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

LIMIT 100">[/code]

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.