gpt4 book ai didi

php - 从表中随机获取多行

转载 作者:行者123 更新时间:2023-11-29 09:15:21 25 4
gpt4 key购买 nike

现在我使用 ORDER BY Rand(); 从表中随机选择 3 行正如网上所指出的,这种方法非常慢。我在只有 30 行的数据库上使用它,并且需要很长时间才能返回值。我发现的大多数其他解决方案仅返回一行。返回多个随机行的最佳方法是什么?

$get_projects_query = 
mysql_query(
"SELECT p_id FROM project_data WHERE p_featured='1' ORDER BY Rand() LIMIT 3"
) or die(mysql_error());

while($project_row = mysql_fetch_array($get_projects_query)) {?>
//Do stuff
}
//end three random featured projects loop)

最佳答案

如果只有 30 行,您还有其他几个选择。

选项#1

  1. 获取全部 30 行。
  2. 调用 shuffle()
  3. 读出前 3 个

选项#2

  1. 生成 0 到 29 之间的 3 个随机数。将它们称为 r1、r2、r3。
  2. 选择 ... WHERE p_id IN (r1, r2, r3)

选项#3

  1. 从...中选择 p_id
  2. while ($row = mysql_fetch_assoc($result)) $idList[] = $row["p_id"];
  3. 随机播放($idList)
  4. SELECT ... WHERE p_id IN ($idList[0], $idList[1], $idList[2])

关于php - 从表中随机获取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com