我在尝试随机取出mysql中的一条数据中
DESCRIBE nickname_library;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | UNI | NULL | |
+-------+-------------+------+-----+---------+----------------+
以下用来证明字段id是连续且自增的:
SELECT MIN(id), MAX(id), COUNT(*) FROM `nickname_library`;
+---------+---------+----------+
| min(id) | max(id) | count(*) |
+---------+---------+----------+
| 1 | 2415 | 2415 |
+---------+---------+----------+
但是我尝试执行:
SELECT * FROM `nickname_library`
WHERE id >= (
SELECT FLOOR(RAND() * (SELECT MAX(id) FROM `nickname_library`))
)
ORDER BY id LIMIT 10;
+-----+-----------------------+
| id | name |
+-----+-----------------------+
| 36 | 青衫不改旧人还 |
| 63 | 和晨濡 |
| 80 | 倦怠 |
| 86 | 勉励 |
| 92 | 梦 |
| 148 | 超越 |
| 160 | 叶觞彡 |
| 167 | 装乖很简单 |
| 208 | 安知 |
| 224 | 沐樱 |
+-----+-----------------------+
这里的id居然不是连续的,而且我试了很多次,选出来的id一直没有超过300
可是我的数据一共有2415条数据
但是我单独执行:
SELECT FLOOR(RAND() * (SELECT MAX(id) FROM `nickname_library`));
选出的数据又是很平均的
+----------------------------------------------------------+
| FLOOR(RAND() * (SELECT MAX(id) FROM `nickname_library`)) |
+----------------------------------------------------------+
| 451 |
+----------------------------------------------------------+
+----------------------------------------------------------+
| FLOOR(RAND() * (SELECT MAX(id) FROM `nickname_library`)) |
+----------------------------------------------------------+
| 1912 |
+----------------------------------------------------------+
+----------------------------------------------------------+
| FLOOR(RAND() * (SELECT MAX(id) FROM `nickname_library`)) |
+----------------------------------------------------------+
| 965 |
+----------------------------------------------------------+
求解答