gpt4 book ai didi

php - 如何从 SQL 查询选择中选择随机行?

转载 作者:行者123 更新时间:2023-11-29 04:23:35 24 4
gpt4 key购买 nike

如何从 SQL 数据库查询中随机选择一行?我的意思是:

从表 1 中选择类别为“绿色”的所有事物:

$stmt = $db->query('SELECT * from table1 WHERE Category LIKE "%green%"');

然后从这个选择中随机显示一行(而不是像我在下面所做的那样显示这个选择中的每一行)

while($rows = $stmt->fetch()){
echo "<tr><td>". $rows['Number'] . "</td><td>" . $rows['Content'] . "</td></tr>";
};

最佳答案

在一个合理大小的数据集中,随机排列你的行并选择第一行:

...ORDER BY RAND() LIMIT 1;

你的声明将变成:

$stmt = $db->query(
'SELECT * from table1
WHERE Category LIKE "%green%"
ORDER BY RAND() LIMIT 1;'
);

如果您在查询中缩小选择范围,则无需使用复杂的过程从 PHP 代码的结果集中提取一行。

如果您的数据集非常大,请考虑按照 Tobias Hagenbeek 的建议执行多个查询:

  1. COUNT()匹配的行。
  2. 在 PHP 中,在 1 和 COUNT() 的结果之间选择一个随机数.
  3. 执行新查询以选择指定行:

    ...LIMIT <random number>, 1;

最后,如果您只需要一个任意行并且随机性/唯一性不是问题,请考虑按照 Gordon Linoff 的建议每次都从表中选择第一行:

...LIMIT 1;

关于php - 如何从 SQL 查询选择中选择随机行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596157/

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