mysql怎么随机取数 mysql随机选取n行

MySQL产生随机数MYSQL 取随机数
2010年04月26日 星期一 09:48
mysql 取随机数
--对一个表取任意随机数
SELECT *
FROM TMP_XF_TEST
WHERE ID = (SELECT FLOOR(RAND() * (SELECT MAX(ID) FROM TMP_XF_TEST)))
order by id LIMIT 1;
--有条件性的取随机数
SELECT *
FROM TMP_XF_TEST
WHERE ID = (SELECT FLOOR(RAND() *
((SELECT MAX(ID) FROM TMP_XF_TEST WHERE GID = 9) -
(SELECT MIN(ID) FROM TMP_XF_TEST WHERE GID = 9)))
(SELECT MIN(ID) FROM TMP_XF_TEST WHERE GID = 9))
AND GID = 9
ORDER BY ID LIMIT 1;
--gid上存在索引
或者
SELECT *
FROM TMP_XF_TEST AS t1 JOIN
(SELECT ROUND(RAND() * ((SELECT MAX(id) FROM TMP_XF_TEST WHERE GID = 9)-(SELECT MIN(id) FROM TMP_XF_TEST WHERE GID = 9))
(SELECT MIN(id) FROM TMP_XF_TEST WHERE GID = 9)) AS id) AS t2
WHERE t1.id = t2.id AND t1.GID = 9
ORDER BY t1.id LIMIT 1;
#########
不要用下面的杯具写法
mysql insert into tmp_xf_test(user_nick,gid,item_id,gmt_create,gmt_modified,memo)
- select user_nick,gid,item_id,gmt_create,gmt_modified,memo from tmp_xf_test;
Query OK, 165888 rows affected (9.65 sec)
Records: 165888Duplicates: 0Warnings: 0
mysql SELECT *
- FROM `tmp_xf_test`
- WHERE id = (SELECT FLOOR( MAX(id) * RAND()) FROM `tmp_xf_test` )
- ORDER BY id LIMIT 1;
----- ----------- ----- --------- --------------------- --------------------- --------------------
| id| user_nick | gid | item_id | gmt_create| gmt_modified| memo|
----- ----------- ----- --------- --------------------- --------------------- --------------------
| 467 | 玄风|9 |123 | 2010-04-26 14:56:39 | 2010-04-26 14:56:39 | 玄风测试使用的数据 |
----- ----------- ----- --------- --------------------- --------------------- --------------------
1 row in set (51.12 sec)
mysql explain SELECT *
- FROM `tmp_xf_test`
- WHERE id = (SELECT FLOOR( MAX(id) * RAND()) FROM `tmp_xf_test` )
- ORDER BY id LIMIT 1\G
*************************** 1. row ***************************
id: 1
select_type: PRIMARY
table: tmp_xf_test
type: index
possible_keys: NULL
key: PRIMARY
key_len: 8
ref: NULL
rows: 1
Extra: Using where
*************************** 2. row ***************************
id: 2
select_type: UNCACHEABLE SUBQUERY
table: tmp_xf_test
type: index
possible_keys: NULL
key: idx_tmp_xf_test_gid
key_len: 4
ref: NULL
rows: 331954
Extra: Using index
2 rows in set (0.01 sec)
---
mysql SELECT * FROM `tmp_xf_test` t1 join
- (SELECT FLOOR( MAX(id) * RAND()) as id FROM `tmp_xf_test` )as t2
- where t1.id =t2.id
- ORDER BY t1.id LIMIT 1;
------- ----------- ----- --------- --------------------- --------------------- -------------------- -------
| id| user_nick | gid | item_id | gmt_create| gmt_modified| memo| id|
------- ----------- ----- --------- --------------------- --------------------- -------------------- -------
| 40311 | 玄风|9 |123 | 2010-04-28 15:47:19 | 2010-04-28 15:47:19 | 玄风测试使用的数据 | 40311 |
------- ----------- ----- --------- --------------------- --------------------- -------------------- -------
1 row in set (0.14 sec)
##############
mysql SELECT * FROM `tmp_xf_test`
- WHERE id = (SELECT floor(RAND() * (SELECT MAX(id) FROM `tmp_xf_test`)))
- ORDER BY id LIMIT 1;
------ ----------- ----- --------- --------------------- --------------------- --------------------
| id| user_nick | gid | item_id | gmt_create| gmt_modified| memo|
------ ----------- ----- --------- --------------------- --------------------- --------------------
| 1352 | 玄风|9 |123 | 2010-04-28 15:47:19 | 2010-04-28 15:47:19 | 玄风测试使用的数据 |
------ ----------- ----- --------- --------------------- --------------------- --------------------
1 row in set (0.00 sec)
mysql explain SELECT * FROM `tmp_xf_test`
- WHERE id = (SELECT floor(RAND() * (SELECT MAX(id) FROM `tmp_xf_test`)))
- ORDER BY id LIMIT 1\G
*************************** 1. row ***************************
id: 1
select_type: PRIMARY
table: tmp_xf_test
type: index
possible_keys: NULL
key: PRIMARY
key_len: 8
ref: NULL
rows: 1
Extra: Using where
*************************** 2. row ***************************
id: 3
select_type: SUBQUERY
table: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: Select tables optimized away
2 rows in set, 1 warning (0.00 sec)
对应的另外一种杯具写法是:
SELECT *
FROM TMP_XF_TEST
WHERE ID = (SELECT FLOOR(RAND() * (MAX(ID) - MIN(ID)))MIN(ID) MID
FROM TMP_XF_TEST
WHERE GID = 9)
AND GID = 9 LIMIT 1;
如何从mysql表中随机取一条符合条件的数据order by rand()就是随机排序
order by rand() limit 1就是随机获取一行数据.
满足2个条件,第一是 `Sex`='男' 和`Ctiy`='广州'
select * from `user` where`Sex`='男'AND`Ctiy`='广州'order by rand() limit 1
怎么从mysql表中随机取数据从mysql数据库表中随机获取数据
其实mysql怎么随机取数,从数据库随机获取数据mysql怎么随机取数 , 很简单mysql怎么随机取数,只须用到一个rand()函数;
select * from table_name order by rand() limit 0,5;
下面是一个小实例mysql怎么随机取数:
从文章表中随机获取5条数据 。
$dblink=mysql_connect("localhost","root","123456");
mysql_query("set names utf8");
mysql_select_db("aixuexi");
$sql="select * from waxx_article order by rand() limit 0,5";
$rs=mysql_query($sql);
while($row=mysql_fetch_array($rs)){
$rows[]=$row;
}
if($rows){
foreach($rows as $v){
?
div style="width:350px;height:35px;line-height:35px;border:1px solid #ccc;"?php echo $v['title']; ?/div
?php
}
}else{
echo "暂无文章";
}
mysql查询怎么随机获取数据给mysql怎么随机取数你举个例子吧(随机从user表取出一个数据)mysql怎么随机取数:select * from `user`order by rand() limit 1
当然也可以使用编程语言mysql怎么随机取数,比如Java获取到所有记录mysql怎么随机取数的长度mysql怎么随机取数,然后使用Random方法随机选择一条查询,可以看看这篇文章
如何从mysql数据库中随机获取任意条数据?随机读取可用newid(),取一条可用top 1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
select?top?1?*?from?test?order?by?newid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果 。
【mysql怎么随机取数 mysql随机选取n行】mysql怎么随机取数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql随机选取n行、mysql怎么随机取数的信息别忘了在本站进行查找喔 。

    推荐阅读