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.
