數(shù)據(jù)庫有哪些 如何利用SQL隨機查詢出指定數(shù)量的數(shù)據(jù)?
如何利用SQL隨機查詢出指定數(shù)量的數(shù)據(jù)?雖說都是使用 SQL, 但是不同的數(shù)據(jù)庫完成這個操作的寫法是不同的, 以50條為例.MySQLSelect * from [表名] where [條件] ord
如何利用SQL隨機查詢出指定數(shù)量的數(shù)據(jù)?
雖說都是使用 SQL, 但是不同的數(shù)據(jù)庫完成這個操作的寫法是不同的, 以50條為例.
MySQL
Select * from [表名] where [條件] order by rand() limit 50
SQL Server
Select top 50 * from [表名] group by [Id] order by NEWID()
mysql隨機查詢?nèi)舾蓷l數(shù)據(jù)的方法?
1.隨機讀取連續(xù)多條記錄。經(jīng)過實踐,可以隨機讀取多條連續(xù)的數(shù)據(jù)記錄,里頭取值的一般都是主鍵ID來進行最大值、最小值的讀取:
SELECT * FROM example_table AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table)) (SELECT MIN(id) FROM example_table)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 5
2.隨機多條數(shù)據(jù)。以下兩種都是隨機讀取數(shù)據(jù),查詢數(shù)據(jù)速度、隨機范圍都基本相差不大
SELECT * FROM example_table WHERE id >= ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table)) * RAND() (SELECT MIN(id) FROM example_table) LIMIT 5
SELECT * FROM example_table WHERE id>=(SELECT floor(RAND() * ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table)) (SELECT MIN(id) FROM example_table))) ORDER BY id LIMIT 5
java程序中怎樣從數(shù)據(jù)庫的一張表中隨機提取幾條數(shù)據(jù)?
1. 用select count(*)得到總記錄條數(shù)t
2. 用分頁查找,用隨機數(shù)Random得到一個0<x<t的x數(shù),然后分頁的分頁數(shù)和分頁量都用x
3.該分頁查找得到的就是一個隨機的記錄。
4.循環(huán)1-3步驟,直到得到希望數(shù)量的隨機記錄。