Posted by Stefan Rybacki on 01/10/06 13:28
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
J.O. Aho wrote:
> Joe wrote:
>
>...
>
>...
>
> -- Next line is first in the procedure
> DROP PROCEDURE IF EXISTS randrow;
> delimiter //
> CREATE PROCEDURE randrow(OUT result CHAR(20))
> BEGIN
> DECLARE valueadd INT DEFAULT 0;
> DECLARE rowsno INT DEFAULT 0;
> DECLARE temp INT DEFAULT 0;
> DECLARE curs1 CURSOR FOR SELECT Rated_Sum,Name FROM RateTable;
> SELECT @randvalue:=CEIL(RAND(NOW())*SUM(Rated_Sum)) AS RandNo FROM RateTable;
> OPEN curs1;
> REPEAT
> FETCH curs1 INTO temp,result;
> SET valueadd := valueadd + temp;
> UNTIL (@randvalue <= valueadd) END REPEAT;
> CLOSE curs1;
> END
> //
> delimiter ;
> -- previous line was the last line
>
What if there are multiple entries with the same rated_sum value? As I
understand right, you're just giving back the first found entry.
Regards
Stefan
>...
>
> //Aho
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1rc2 (MingW32)
iD8DBQFDw5pByeCLzp/JKjARApKNAJ9i+3iEl9XueFBtnGUBq7myzDmlugCcC9lg
WWfDSR7zMGkLws6MbOTfjmg=
=8pH/
-----END PGP SIGNATURE-----
[Back to original message]
|