我有一个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 -->
答案 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))