[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Построить правильно условие запроса
Страницы: 1, 2
N0ob
Имеется таблица с данными:
user posted image
MySQL запрос:
SELECT `id`, `text`, `from`, `date` FROM `fg5k_topics` WHERE `type`='private' AND `dialog_id`=4 ORDER BY `date` DESC LIMIT  15

Мне нужно выбрать последние 15 записей, но в обратном порядке. То есть записи, с id 515 по 529 в таком порядке. У меня выюираются в ином порядке, с 529 по 515. Что нужно добавить в условие?
kaww
можно сделать суб-запросом:
SELECT * FROM (
SELECT `id`, `text`, `from`, `date` FROM `fg5k_topics` WHERE `type`='private' AND `dialog_id`=4 ORDER BY `date` DESC LIMIT 15
) as _s
ORDER BY id ASC
dron4ik
то может просто перевернуть массив после получения данных?

_____________
Ex3m.com.ua — Активный образ жизни
Invis1ble
ТС, вместо своих веселых картинок лучше бы дамп структуры таблицы показал

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Kusss
DESC лишний.
ведь тебе нужна стандартная сортировка, от меньшего к большему.
Razzwan
у меня такое чувство, что в основном люди сюда заходят поиздеваться. Добавить в код можно еще один DESC, если отвечать на вопрос. Правда, не пробовал никогда этого делать, а так, да, DESC лишний.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
sergeiss
А чем вам не нравится DESC? Он тут нужен. Вообще, после ответа kaww можно было закрывать тему smile.gif
DESC тут нужен для того, чтобы выбрать именно 15 последних записей. А потом, да, можно поменять их порядок.

Kusss, Razzwan - а каковы ваши варианты запроса? Просто ответить "вот тут то-то и то-то лишнее" могут многие. А вот написать при этом свой вариант почему-то не все могут. Или не знают, как надо?


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Razzwan

SELECT `id`, `text`, `from`, `date` FROM `fg5k_topics` WHERE `type`='private' AND `dialog_id`=4 ORDER BY `date` LIMIT 15


Этот запрос отличается от требуемого тем, что выведутся строки с датами начиная с наименьшей, правильно?

Да, я ошибся. Приношу извинения за незаслуженные притензии.

Я не знаю способа лучше чем предложили в первом ответе. Возможно, чуть лучше будет использовать array_reverse для результата?



_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
sergeiss
Цитата (Razzwan @ 9.08.2015 - 00:16)
Возможно, чуть лучше будет использовать array_reverse для результата?

А чем лучше? Для этого придется задействовать ресурсы ПХП. А я, например, сторонник того, чтобы по возможности всё делалось внутри БД (и я не один такой, нас много smile.gif). Чтобы ПХП получил готовый результат и просто использовал его. Чаще всего стремление использовать ПХП для переработки результата говорит о том, что человек просто не умеет полноценно работать с БД.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
N0ob
kaww спасибо, работает как нужно :) А можно менее извращенный вариант?) Я, конечно, в оценке запросов на их нагрузку на сервер не селен, но мне кажется этот запрос будет его сильно насиловать. Не?

dron4ik этот вариант как резервный. Просто знаю, что можно сделать еще на уровне запроса.


Invis1ble если он так сильно нужен, то лови:
CREATE TABLE IF NOT EXISTS `fg5k_topics` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`from` int(3) NOT NULL,
`to` int(3) NOT NULL,
`text` text NOT NULL,
`date` datetime NOT NULL,
`type` varchar(7) NOT NULL,
`chat_id` int(3) NOT NULL,
`dialog_id` int(3) NOT NULL,
`view` int(1) NOT NULL DEFAULT '0',
`notified` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `from` (`from`,`to`,`date`,`type`,`chat_id`,`dialog_id`,`view`,`notified`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=530 ;


Kusss я тоже так думал, но выборка идет не так, как задумано.

Результат выборки с DESC:
user posted image

Без DESC:
user posted image

Нужно(результат выборки с запроса kaww):
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.