gpt4 book ai didi

php - 如何从 n 开始选择 mySQL 中的每第 n 行

转载 作者:行者123 更新时间:2023-11-29 01:22:41 25 4
gpt4 key购买 nike

我创建了一个问题 Here我认为这有点臃肿。在这里浏览这个问题是我的要求:

我需要创建 3 个 mySQL 查询来获取该行中的所有信息,以便我可以将信息格式化为其中一个 HTML 表格。

这是我选择所有内容的查询:

$qry_questions = mysql_query("SELECT * FROM mbr_qa_questions ORDER BY q_votes DESC);
while($row = mysql_fetch_array($qry_questions){
//Grab all information
}

现在,我需要进行三个与上述查询类似的查询,但我需要它执行如下操作:

pull everything from every third row in a table starting at row #1
pull everything from every third row in a table starting at row #2
pull everything from every third row in a table starting at row #3

然后我会将这些查询中的每一个放入 3 列之一。

我无法通过唯一 ID 执行此操作。是的,它是一个自动递增的 ID,但我可能必须将整行移动到另一个表中。

编辑:我已经添加了对每一行进行计数并将查询结果放入正确的“bin”中的尝试

//GIVE EACH ENTRY A COLUMN NUMBER
$count++;
if($count >= 4){
$count = 1;
}?>

<div class="col" id="col-1">
<?PHP
while($count == 1){
include("pieces/answers/newAnswerLayout.php");
}
?>
</div>
<div class="col" id="col-2">
<?PHP
while($count == 2){
include("pieces/answers/newAnswerLayout.php");
}
?>
</div>
<div class="col" id="col-3">
<?PHP
while($count == 3){
include("pieces/answers/newAnswerLayout.php");
}
?>
</div>

最佳答案

这是一种获取 MySQL 返回的结果集的方法。 (但只返回所有行并在应用程序中获取每三行可能更容易)。但它可以很容易地在 MySQL 中完成。请注意,您的原始查询包含在别名为 r 的括号中(作为内联 View )。

SELECT r.*
FROM (
SELECT *
FROM mbr_qa_questions
ORDER BY q_votes DESC
) r
CROSS
JOIN ( SELECT @i := 0 ) s
HAVING ( @i := @i + 1) MOD 3 = 1

从第一行开始,每三行返回一次。要获取从第二行和第三行开始的每隔三行,请将 HAVING 子句中的文字 = 1 替换为 = 2= 3 (分别)。

关于php - 如何从 n 开始选择 mySQL 中的每第 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942812/

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