php - 快速找到我想要的页面之前和之后的页面

标签 php mysql performance

我是 mysql 的初学者,我想知道是否有更快的方法来执行以下操作:

我有一个这样的表:

------------------------------
| Pages |      Creation      |
------------------------------
| bar   | 2012-10-10 10:11:10|
| blah  | 0000-00-00 00:00:00|
| foo   | 2012-10-10 10:10:10|
------------------------------

没有主键。

我想知道特定页面之前的页面和之后的页面(按创建日期排序)。

目前我做的是:

Sql:SELECT * FROM 表 ORDER BY 创建

PHP:

foreach($r as $c=>$t)
{
    if($t['pages']==$thepageiwant)
    {
        $before=$c-1;
        $after=$c+1;
        break;
    }
}

最佳答案

上一页:

SELECT table.Pages
FROM table, (SELECT Creation FROM table WHERE Pages = "'.$page.'") AS t2
WHERE table.Creation < t2.Creation
ORDER BY  table.Creation DESC
LIMIT 1

下一页:

SELECT table.Pages
FROM table, (SELECT Creation FROM table WHERE Pages = "'.$page.'") AS t2
WHERE table.Creation > t2.Creation
ORDER BY  table.Creation ASC
LIMIT 1

关于php - 快速找到我想要的页面之前和之后的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13671988/

相关文章:

php - 试图在保留 CSS 值的同时使用定位放置打印出 DIV 的内容?

php - 在 mysql php 搜索中突出显示搜索文本

PHP MySQL 身份验证错误

arrays - Matlab代码性能提升

php - 让我的 jQuery 在 .load() 页面上工作

php - 如何用PHP获取祖父目录

performance - 如何在Haskell中使用内联的相位控制?

mysql - 优化23张表的慢sql查询

javascript - 如何在 $.get URL 中调用 this.id

mysql - 云计算和MYSQL有可能结合起来吗?