Mysql选择第二行

时间:2010-07-19 10:15:44

标签: php mysql sql

我有一个mysql问题。


我的网站上有一个新闻栏目,我想展示最新的两个项目。 如果我这样做:

SELECT * FROM nieuws ORDER BY id DESC LIMIT 1

它选择最新的项目, 现在我想选择倒数第二个项目。

你们知道怎么做吗?

///编辑

现在它不起作用,这是我的代码:(我连接了包括;))

            $select = mysql_query("SELECT * FROM nieuws ORDER BY id DESC LIMIT 1");
            while($row = mysql_fetch_assoc($select)) {
            $datum = $row['time'];
            $titel = $row['title'];
            $bericht = $row['message'];
            ?>
            <div class="entry">

                <span class="blue date"><?php echo "$datum"; ?></span>
                <h3><?php echo "$titel"; ?></h3>
                <p><?php echo "$bericht"; ?></p> <br />
            </div><!-- end of entry --> <?php } ?>
            <?php 
            $select2 = mysql_query("SELECT * FROM nieuws ORDER BY id DESC LIMI 1, 1");
            while($row2 = mysql_fetch_assoc($select2)) {
                $datum = $row2['time'];
                $titel = $row2['title'];
                $bericht = $row2['message'];
                ?>
            <div class="entry">
                <span class="green date"><?php echo "$datum"; ?> </span>
                <h3><?php echo "$titel"; ?></h3>
                <p><?php echo "$bericht"; ?></p>
            </div> <!-- end of entry --> <?php } ?>
        </div><!-- end of news --> 

4 个答案:

答案 0 :(得分:31)

SELECT * FROM nieuws ORDER BY id DESC LIMIT 2 - 选择最后2项

SELECT * FROM nieuws ORDER BY id DESC LIMIT 1, 1 - 仅选择第二项

答案 1 :(得分:5)

LIMIT可以有两个参数:

SELECT ... LIMIT 1, 1

答案 2 :(得分:5)

如果你想显示最新的两个项目,那么你可以通过限制为2而不是1来同时获得两个项目。这意味着它只能获得一个数据库来获取你需要的信息。

SELECT * FROM nieuws ORDER BY id DESC LIMIT 2

或者如果你只想要第二行,你可以给LIMIT一个偏移,告诉它从哪一行开始,(虽然如果你在一个查询中得到第一行,那么在另一行得到第二行,你“进行两次数据库命中以获取所需的数据,这会影响性能。”

SELECT * FROM nieuws ORDER BY id DESC LIMIT 1, 1

您可以在MySQL documentation中找到有关如何使用LIMIT子句的更多信息。

答案 3 :(得分:2)

SELECT * FROM table其中id&gt;(SELECT id FROM table order by id ASC limit1,1)和id&lt; =(从表中选择max(id))