I received that just after writing this:

<@PURGE NAME=randslides SCOPE=domain>

<@ASSIGN NAME=temp SCOPE=local VALUE="@@domain$slides">

<@FOR STOP='<@NUMROWS ARRAY=temp SCOPE=local>'>
<@ASSIGN NAME=SLIDENO SCOPE=request VALUE="<@RANDOM LOW=1 HIGH=<@NUMROWS 
ARRAY=temp SCOPE=local>>">
<@ADDROWS ARRAY=randslides SCOPE=domain VALUE="@@local$temp[@@local$slideno,*]">
<@DELROWS ARRAY=TEMP SCOPE=local POSITION=@@local$slideno NUM=1>

</@FOR>

<@ASSIGN NAME=randslides[0,1] SCOPE=domain VALUE=recno>
<@ASSIGN NAME=randslides[0,2] SCOPE=domain VALUE=TourName>
<@ASSIGN NAME=randslides[0,3] SCOPE=domain VALUE=image>

<@DEBUG>
@@domain$randslides[0,*]
@@domain$randslides
</@DEBUG>

Wayne Irvine

On 14/03/2012, at 2:51 AM, Fergal Donlon wrote:

> Just to add to Robert's post on MySql you can use:
>
> SELECT * FROM tbl_name ORDER BY RAND();
>
> (combine with Limit for big tables/resultsets)
>
>
>
>
> > From: [email protected]
> > To: [email protected]
> > Subject: RE: TeraScript-Talk: Randomise
> > Date: Fri, 9 Mar 2012 10:26:51 -0500
> >
> > Wayne,
> >
> > There is no high level function to accomplish your task in one tag.
> >
> > Most SQL databases support the ability to:
> >
> > SELECT * FROM table ORDER BY NEWID()
> >
> > Or in some cases
> >
> > SELECT * FROM table ORDER BY UUID()
> >
> > The point being that SQL assigned IDs/UUIDs are themselves a rather random 
> > collection of numbers and letters and when sorted create a fairly random 
> > result.
> >
> > TeraScript 6.1 now has @UUID, so you could create a UUID for each row and 
> > then sort on that value all in TS if you wanted to. Creating a hash on some 
> > piece of data has the similar effect of creating a random (but repeatable) 
> > value.
> >
> > Your way of using and then deleting a random row from the array would also 
> > be effective and may give you certain controls - like knowing the state of 
> > what rows the user has/has not seen.
> >
> > Requests for something like this are rare, and it's not on my list to add 
> > it to the product, but if users want to reply to this email reinforcing the 
> > request, then I'll consider it. I would likely add it as a third 
> > "direction" to the @SORT function, that way someone could @SORT COLS="1 
> > ASC,RND" - which would sort the array on column one, but then randomize 
> > rows within those subsets. This would actually be a fairly unique and 
> > powerful function.
> >
> > Robert
> >
> > -----Original Message-----
> > From: Wayne Irvine [mailto:[email protected]]
> > Sent: Friday, March 09, 2012 2:54 AM
> > To: [email protected]
> > Subject: TeraScript-Talk: Randomise
> >
> > Is there any simple way to randomise the row order of an array?
> >
> > I have a bunch of records of image names and ROWIDs I want to use in a 
> > slideshow and I'd like them to appear in order, selected at random once.
> >
> > I realise I could use the @RANDOM function with a HIGH of @NUMROWS, grab 
> > that record, @DELROW from existing array and @ADDROW to a new array and do 
> > that recursively until I'd been through the whole array but thought there 
> > might be a function for that already:
> >
> > <@RANDOMISE ARRAY=myarray>
> >
> > or
> >
> > <@SORT ARRAY=myarray ROWS="* RAND">
> >
> > Wayne Irvine
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to 
> > [email protected] with "unsubscribe terascript-talk" in the body.
> >
> >
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to 
> > [email protected] with "unsubscribe terascript-talk" in the body.
> >
>
> To unsubscribe from this list, please send an email to 
> [email protected] with "unsubscribe terascript-talk" in the body.



----------------------------------------

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.

Reply via email to