Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Customising the CMS

SQLQuery() and orderby = 'RAND()'


Reply

1945 Views

Avatar
Anatol

22 July 2009 at 2:00pm (Last edited: 22 July 2009 2:01pm), 126 Posts

Hi,

I want to get a random result from a quite specialised SQL query. I built the query simply using [url=http://doc.silverstripe.org/doku.php?id=sqlquery]SQLQuery[/url]:

$sqlQuery = new SQLQuery();
$sqlQuery->select = array( ... etc ... );
$sqlQuery->from = array( ... etc ...);
... etc ...
$sqlQuery->orderBy = 'RAND()';

Works all perfectly except $sql->orderBy = 'RAND()';

If I order by a specific field it's fine, but ORDER BY RAND() simply gets stripped out of the query when I run

$sqlQuery->sql();

Do I do anything wrong or is RAND() simply not supported as an orderby value? If it's not supported may I suggest to include this in a future version of Silverstripe?

Cheers!
Anatol