У меня вопрос 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 -->
SELECT * FROM nieuws ORDER BY id DESC LIMIT 2
– выбор последних двух элементов
SELECT * FROM nieuws ORDER BY id DESC LIMIT 1, 1
– выбирает только второй элемент
LIMIT
может принимать два аргумента:
SELECT ... LIMIT 1, 1
Если вы хотите отображать последние два элемента, вы можете получить оба одновременно, ограничив 2 вместо 1. Это означает, что только одна база данных попала, чтобы получить нужную вам информацию.
SELECT * FROM nieuws ORDER BY id DESC LIMIT 2
Или, если вам нужна только вторая строка, вы можете дать смещение LIMIT, чтобы указать, с какой строки начать работу (хотя, если вы получите первую строку в одном запросе, затем получите вторую в другой, вы делаете два обращения к базе данных, чтобы получить нужные данные, что может повлиять на производительность).
SELECT * FROM nieuws ORDER BY id DESC LIMIT 1, 1
Вы можете узнать больше о том, как использовать предложение LIMIT в документации MySQL .
SELECT * FROM table, где id> (SELECT id FROM table order by id ASC limit1,1) и id <= (выберите max (id) из таблицы)