There are lots of ways to select a random record or row from a database table. Here are some example SQL statements that don't require additional application logic, but each database server requires different SQL syntax.

Select a random row with MySQL:

SELECT column FROM tableORDER BY RAND()LIMIT 1

Select a random row with PostgreSQL:

SELECT column FROM tableORDER BY RANDOM()LIMIT 1

Select a random row with Microsoft SQL Server:

SELECT TOP 1 column FROM tableORDER BY NEWID()

Select a random row with IBM DB2

SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Thanks Tim

Select a random record with Oracle:

SELECT column FROM( SELECT column FROM tableORDER BY dbms_random.value )WHERE rownum = 1

Thanks Mark Murphy

Feel free to post other example, variations, and SQL statements for other database servers in the comments.

posted on 2010-09-21 15:16  Dufe王彬  阅读(460)  评论(0编辑  收藏  举报