For possible educational research purposes, I was playing around with a
query that would randomly select people from a database. The database I
experiment with has a group of fictitious persons with id numbers
(primary key) ranging sequentially from 2 to 378. When I ran these
queries below, I was expecting to select five random persons from the
database. The query partially worked. I was getting random subjects, but
everytime I ran the query, I got a different number of subjects,
stretching from 0 and up (sometimes as many as 8 or 9). I could see the
query generating fewer rows if I duplicated an id or made an off-by-one
error, but I don't see how it could generate more than five. Does anyone
see my error? (I've used two equivalent forms for the query below; both
did the same thing)

select id,first,middle,last from persons where id = ceil(rand()*377+1)
or id = ceil(rand()*377+1) or id = ceil(rand()*377+1) or id =
ceil(rand()*377+1) or id = ceil(rand()*377+1);

 select id,first,middle,last from persons where id  in (ceil(rand()*377
+1), ceil(rand()*377+1), ceil(rand()*377+1), ceil(rand()*377+1),
ceil(rand()*377+1));
+------+-------------+--------+----------+
| id   | first       | middle | last     |
+------+-------------+--------+----------+
|   35 | Viridiana   | W      | McCarthy |
|   47 | Crystal     | O      | Cassady  |
|   67 | Ricardo     | L      | Johnson  |
|  183 | Christopher | E      | Denver   |
|  237 | Christopher | B      | Brenner  |
|  255 | Danielle    | W      | Nickels  |
|  299 | Christine   | D      | Dexter   |
|  300 | Rachel      | J      | Baker    |
|  339 | Jenna       | O      | Murray   |
+------+-------------+--------+----------+
9 rows in set (0.00 sec)



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to