SQL ORDER BY 随机排序

SQL ORDER BY 随机排序

如果您想要结果记录 随机排序 ,您应该根据不同的数据库使用以下代码。

这里有一个问题:从数据库中获取随机记录或行的需要是什么?

有时您可能想要显示随机信息,例如 文章、链接、页面 等供用户查看。

如果您想要从任何数据库中获取随机行,则必须根据不同的数据库使用一些修改过的查询。

  • 使用 MySQL 选择随机行:

如果您想要返回一个随机行,请使用以下语法:

SELECT column FROM table ORDER BY RAND () LIMIT 1; 
  • 选择Postgre SQL中的随机行:
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
  • 选择一个随机行:
SELECT TOP 1 column FROM table ORDER BY NEWID ();  
  • 选择一行随机数据(Oracle):
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
  • 选择IBM DB2中的随机行:
SELECT column RAND () as IDX  FROM table ORDER BY  IDX FETCH FIRST 1 ROWS ONLY;

为了实际理解这个概念,让我们通过使用MySQL数据库的一些示例来看一下。假设我们在数据库中创建了一个名为items的表,其中包含以下数据:

表:items

ID Item_Name Item_Quantity Item_Price Purchase_Date
1 Soap 5 200 2021-07-08
2 Toothpaste 2 80 2021-07-10
3 Pen 10 50 2021-07-12
4 Bottle 1 250 2021-07-13
5 Brush 3 90 2021-07-15

假设我们想从items表中检索任意随机记录。

我们将查询书写如下:

mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;

我们可能会得到以下结果:

ID Item_Name Item_Quantity Item_Price Purchase_Date
3 Pen 10 20 2021-07-12

现在让我们尝试再次执行相同的查询。

mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;

我们可能会得到以下结果:

ID Item_Name Item_Quantity Item_Price Purchase_Date
5 Brush 3 90 2021-07-15

从上述结果中,我们可以得出结论,尽管我们两次执行相同的查询,但我们得到的输出结果仍然不同。RAND()函数从同一张表中为同一查询两次选取了不同的记录。因此,即使我们再次执行相同的查询,每次都会得到不同的输出结果。使用RAND()函数连续获取相同记录的可能性很小。

现在,假设您希望随机获取表中的所有记录。

为此,我们需要执行以下查询:

mysql> SELECT * FROM items ORDER BY RAND ();

我们可能会得到以下结果:

ID Item_Name Item_Quantity Item_Price Purchase_Date
4 Bottle 1 250 2021-07-13
5 Brush 3 90 2021-07-15
1 Soap 5 200 2021-07-08
2 Toothpaste 2 80 2021-07-10
3 Pen 10 50 2021-07-12

还有一种可能性,如果我们在员工表上再次执行RAND()函数,可以获得一些不同的记录排列。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程