簡體   English   中英

使用asp.net c#從mysql數據庫中選擇1個隨機數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM