![](/img/trans.png)
[英]how to calculate number of views to post in asp.net c# and mysql database
[英]select 1 random number from mysql database using asp.net c#
如何从ID为autoincrement字段的数据库中选择1个随机数。我在数据库中有25,000个[ID]记录。每次选择一个新的随机ID。 如何得到它。
您可以使用以下查询来生成介于0到COUNT
-1个表行之间的随机数:
SELECT ROUND((RAND() * (SELECT COUNT(*) FROM mytable)-1))
然后将此数字用作查询的LIMIT
子句中的偏移量 ,以从表中获取随机行。
使用准备好的语句 ,您可以执行以下操作:
SET @offset = (SELECT ROUND((RAND() * (SELECT COUNT(*) FROM mytable)-1)));
PREPARE STMT FROM 'SELECT * FROM mytable LIMIT ?, 1';
EXECUTE STMT USING @offset;
请注意,由于本手册中所述,必须使用预处理语句:
LIMIT接受一个或两个数字参数,这两个参数都必须是非负整数常量 ( 使用prepared语句时除外 )。
使用以下sql(慢)
'SELECT * FROM tablename ORDER BY RAND() LIMIT 1'
或者你可以使用(快速)
SELECT * FROM myTable, (SELECT FLOOR(MAX(myTable.id) * RAND()) AS randId FROM myTable) AS someRandId WHERE myTable.id = someRandId.randId
内部SELECT为您提供正确范围内的随机ID。 外部SELECT在表中查找右行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.