Выбор Mysql вторая строка

У меня есть 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 --> 
17
задан davmos 26 September 2014 в 15:49
поделиться

3 ответа

SELECT * FROM nieuws ORDER BY id DESC LIMIT 2 - выбирает последние 2 элемента

SELECT * FROM nieuws ORDER BY id DESC LIMIT 1, 1 - выбирает только второй элемент

35
ответ дан 30 November 2019 в 10:53
поделиться

LIMIT может принимать два аргумента:

SELECT ... LIMIT 1, 1
5
ответ дан 30 November 2019 в 10:53
поделиться

Если вы хотите отобразить два последних элемента, вы можете получить оба одновременно time, ограничив его значением 2 вместо 1. Это означает, что для получения необходимой информации достаточно одного обращения к базе данных.

SELECT * FROM nieuws ORDER BY id DESC LIMIT 2

Или, если вам нужна только вторая строка, вы можете указать смещение для LIMIT, чтобы указать, с какой строки начинать, (Хотя если вы получите первую строку в одном запросе, а затем получите вторую в другом, вы выполняем два обращения к базе данных, чтобы получить нужные данные, что может повлиять на производительность).

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

Дополнительную информацию о том, как использовать предложение LIMIT, можно найти в документации MySQL .

5
ответ дан 30 November 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: