首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL中检索数据,跳过它按id排序的前4个输出

问从MySQL中检索数据,跳过它按id排序的前4个输出
EN

Stack Overflow用户
提问于 2013-11-07 17:11:38
回答 4查看 84关注 0票数 0

如果标题混淆了,我很抱歉,这个问题很难命名。

我一直在想如何从MySQL中检索数据,但只检索数据,跳过按id排序的前4个输出。

例如:

代码语言:javascript
复制
function firstFour()
{
    $sth = $this->db->prepare("SELECT data FROM table WHERE category = 'Sports'
    ORDER BY id LIMIT 4");
    $sth->execute();

    $row = $sth->fetch();
    return $row;
}

然后,在第二个查询中,跳过上面的firstFour查询中按id排序的前四个查询,然后从体育类输出其余的数据。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-07 17:15:24

您需要设置限制,如下所示,限制4,4

限制8,4

等等

票数 3
EN

Stack Overflow用户

发布于 2013-11-07 17:15:21

使用此查询,您的限制4将使其从第0行开始,并从第4行开始检索,将限制设置为4,xxxx将从4转到任何xxxx。我用了大量的数字来代替xxxx。

代码语言:javascript
复制
"SELECT data FROM table WHERE category = 'Sports'
 ORDER BY id LIMIT 4, 99999999999"
票数 3
EN

Stack Overflow用户

发布于 2013-11-07 17:26:23

为了扩展扎齐杜尔的答案,并让你的生活变得更简单,你可能需要稍微概括一下你的函数--使用firstFour()、secondFour()等等会让你的生活更加艰难。我建议采纳扎齐杜尔的想法,并输入你的极限变量:

代码语言:javascript
复制
function anyFour($lowLimit)
{
    $sth = $this->db->prepare("SELECT data FROM table WHERE category = 'Sports'
    ORDER BY id LIMIT $lowLimit, 4");
    $sth->execute();

    $row = $sth->fetch();
    return $row;
}

那么,如果您希望保留函数firstFour(),则如下所示:

代码语言:javascript
复制
function firstFour()
{
    return anyFour(0);
}

在那里,您可以创建一个简单的循环,其增量为4。

代码语言:javascript
复制
for ($x = 0; $x < 999;$x++) // 999 should be the total number of sets you want to return...
{
    // on each loop, $myRows returns the next 4 rows:
    $lowLimit = $x * 4;
    $myRows = anyFour($lowLimit);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19842256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档