SQL/MySQL/Math/Random
Версия от 13:46, 26 мая 2010; (обсуждение)
Random row from the table
/*
mysql> Drop table timeTable;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE timeTable (
-> year YEAR(4),
-> month INT(2) UNSIGNED ZEROFILL,
-> day INT(2) UNSIGNED ZEROFILL
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO timeTable VALUES(2001,1,1),
-> (2002,6,20),
-> (2003,5,30),
-> (2004,2,2),
-> (2005,4,23),
-> (2006,3,23);
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0
mysql> select * from timeTable;
+------+-------+------+
| year | month | day |
+------+-------+------+
| 2001 | 01 | 01 |
| 2002 | 06 | 20 |
| 2003 | 05 | 30 |
| 2004 | 02 | 02 |
| 2005 | 04 | 23 |
| 2006 | 03 | 23 |
+------+-------+------+
6 rows in set (0.01 sec)
mysql> SELECT * FROM timeTable ORDER BY RAND() LIMIT 3;
+------+-------+------+
| year | month | day |
+------+-------+------+
| 2002 | 06 | 20 |
| 2005 | 04 | 23 |
| 2001 | 01 | 01 |
+------+-------+------+
3 rows in set (0.00 sec)
*/
Drop table timeTable;
CREATE TABLE timeTable (
year YEAR(4),
month INT(2) UNSIGNED ZEROFILL,
day INT(2) UNSIGNED ZEROFILL
);
INSERT INTO timeTable VALUES(2001,1,1),
(2002,6,20),
(2003,5,30),
(2004,2,2),
(2005,4,23),
(2006,3,23);
select * from timeTable;
SELECT * FROM timeTable ORDER BY RAND() LIMIT 3;