SQL ORDER BY RANDOM

2025 年 2 月 2 日 | 阅读 3 分钟

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

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

有时您可能希望向您的用户显示随机信息,如文章、链接、页面等。

如果您想从任何数据库中提取随机行,您必须根据数据库使用一些修改后的查询。

  • 使用 MySQL 选择一个随机行

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

  • 使用 Postgre SQL 选择一个随机行
  • 使用 SQL Server 选择一个随机行
  • 使用 Oracle 选择一个随机行
  • 使用 IBM DB2 选择一个随机行

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

表: items

IDItem_Name(项目名称)Item_Quantity(项目数量)Item_Price(项目价格)Purchase_Date(购买日期)
1肥皂52002021-07-08
2Toothpaste(牙膏)2802021-07-10
310502021-07-12
4Bottle12502021-07-13
5Brush(牙刷)3902021-07-15

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

我们将编写如下查询

我们可能会得到以下结果

IDItem_Name(项目名称)Item_Quantity(项目数量)Item_Price(项目价格)Purchase_Date(购买日期)
310202021-07-12

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

我们可能会得到以下结果

IDItem_Name(项目名称)Item_Quantity(项目数量)Item_Price(项目价格)Purchase_Date(购买日期)
5Brush(牙刷)3902021-07-15

从以上结果可以看出,即使我们两次执行相同的查询,我们也会得到不同的记录作为输出。 RAND() 函数两次都为同一个查询从单个表中选择了随机记录。 因此,即使我们再次执行相同的查询,每次也会得到不同的输出。 使用 RAND() 函数连续获取相同记录的可能性很小。

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

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

我们可能会得到以下结果

IDItem_Name(项目名称)Item_Quantity(项目数量)Item_Price(项目价格)Purchase_Date(购买日期)
4Bottle12502021-07-13
5Brush(牙刷)3902021-07-15
1肥皂52002021-07-08
2Toothpaste(牙膏)2802021-07-10
310502021-07-12

如果我们在 employees 表上再次执行 RAND() 函数,也有可能得到一些不同的记录排列。


下一主题SQL ORDER BY LIMIT