Привет, у меня есть таблица comments
, и мне нужно взять последние три комментария, но по-другому:
8
9
10
Мой код показывает это:
10
9
8
Код:
$sql_query = $connection->query("SELECT * FROM comments WHERE `post_id` = '38' ORDER BY `id` DESC LIMIT 3");
while ($ff = $sql_query->fetch_array(MYSQLI_ASSOC)) {
echo $ff["text"]. "</br>";
}
Заранее спасибо !
ORDER BY text ASC
если этотASC
не работает с порядком поtext
, используйтеDESC
- person Funk Forty Niner   schedule 27.12.2016LIMIT 3
, который вернет 1, 2 и 3 или 10, 9, 8 снова. Для этого требуется подзапрос или ручное реверсирование массива результатов. - person sidyll   schedule 27.12.2016ASC
у них не работает, как предполагалось ранее. - person Funk Forty Niner   schedule 27.12.2016order by text
вернет (1,2,...,10), а сlimit
это станет (1,2,3). Сdesc
(10,9,...1) становится (10,9,8). Он хочет (8,9,10). Дело в том, чтоlimit
отсчитывается от начала сета. Для подсчета с конца нужен подзапрос. - person sidyll   schedule 27.12.2016limit
со смещением, например,order by text limit 3 offset 7
будет работать. Это заставило меня задуматься о том, можем ли мы создать этот номер смещения динамически с помощью подзапроса. Я отправлю вопрос экспертам MySQL здесь. - person sidyll   schedule 27.12.2016