|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - [решено] Нужна помощь в составлении запроса |
|
MySQL - [решено] Нужна помощь в составлении запроса
|
Новый участник Сообщения: 20 |
Здравствуйте уважаемые форумчане.
Как реализовать следующее: в бд у меня есть н-ое количество новостей, новости постоянно добавляются. У меня есть 2 блока, которые выводят эти новости. Например: {block1} выводит 1 новость, последнюю в базе, а {block2} выводит остальные новости, например 5, но так как запрос и структура одинаковые, получается следующее: ++ Новость 1, уникально оформленная = новость 1 (которую нужно убрать) = новость 2 = новость 3 = новость 4 и т.д. Теперь вопрос: как сделать, чтобы второй блок выводил новости, но не с первой, а, например, со второй или третей??? т.е. какой запрос нужно составить и в эту ли ветку я написал? Заранее очень благодарю за помощь. _________________ |
|
Отправлено: 01:20, 23-03-2009 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 01:48, 23-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Delirium:
И еще раз благодарю за помощь. |
|
Отправлено: 22:28, 23-03-2009 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата KandaSoft:
select top 5 id_news, news_text from news where id_news not in (select top 2 id_news from news order by id_news desc) order by id_news desc Кстати и предыдущий запрос можно переписать в таком же виде. Достаточно менять top 2 На нужное число, и он будет отбрасывать TOP N записей с конца таблицы. |
|
------- Отправлено: 01:17, 24-03-2009 | #4 |
Новый участник Сообщения: 20
|
Профиль | Сайт | Отправить PM | Цитировать The Error returned was: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 id, title, date, alt_name, short_story, category, flag FROM news_post WHERE id ' at line 1 Error Number: 1064 SELECT top 5 id, title, date, alt_name, short_story, category, flag FROM news_post WHERE id NOT IN (select top 2 id from news_post order by id desc) AND approve='1' ORDER BY date |
|
Последний раз редактировалось KandaSoft, 26-03-2009 в 02:02. Отправлено: 01:37, 26-03-2009 | #5 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать KandaSoft, тогда проверяйте по порядку команды:
Если на чем либо выдаст ошибку, сообщите |
------- Отправлено: 01:52, 26-03-2009 | #6 |
Новый участник Сообщения: 20
|
Профиль | Сайт | Отправить PM | Цитировать Первый запрос:
The Error returned was: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 id, title, date, alt_name, short_story, category, flag FROM news_post' at line 1 Error Number: 1064 The Error returned was: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 id, title, date, alt_name, short_story, category, flag FROM news_post' at line 1 Error Number: 1064 The Error returned was: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 id from dle_post order by id desc' at line 1 Error Number: 1064 Как я понимаю, он не хочет воспринимать значение TOP. |
Отправлено: 02:10, 26-03-2009 | #7 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Так, ясно, MySQL не знает что такое TOP, а я проверял на MS SQL.
Он знает такую структуру т.е вместо select top лалала надо написать select id_news, news_text from news LIMIT 0,10 where id_news not in (select top 2 id_news from news order by id_news desc) order by id_news desc Взято отсюда и отсюда |
------- Отправлено: 02:41, 26-03-2009 | #8 |
Новый участник Сообщения: 20
|
Профиль | Сайт | Отправить PM | Цитировать Построил запрос следующим образом:
SELECT id, title, date, alt_name, short_story, category, flag FROM news_post WHERE id NOT IN (select id, date from news_post order by date desc limit 0, 2 ) AND approve='1' ORDER BY date desc limit 0,5 Версия MySQL: 5.0.45 limit не сочетается с in... Тестирую на денвере. ===================================== Все, разобрался. Спасибо за помощь и ссылки! Нужно было просто в исходный запрос: SELECT id, title, date, alt_name, short_story, category, flag FROM news_post WHERE approve='1' ORDER BY date Где вместо 0 вставить с какой записи начинать выводить. |
Последний раз редактировалось KandaSoft, 26-03-2009 в 03:04. Отправлено: 02:54, 26-03-2009 | #9 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Во как, даже проще все оказалось, чем думали сначала
![]() ![]() |
------- Отправлено: 03:06, 26-03-2009 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MSFT SQL Server - [решено] Помощь в написании SQL запроса для базы | maxon-86 | Программирование и базы данных | 4 | 20-01-2010 09:17 | |
[решено] Нужна помощь с логами ! | M.A.M.A.H. | Лечение систем от вредоносных программ | 17 | 18-01-2010 04:13 | |
[решено] нужна помощь программиста. | foxbat | Программирование в *nix | 0 | 09-11-2009 13:45 | |
Интернет - [решено] Нужна помощь по сети + интернет | vavilon79 | Microsoft Windows 2000/XP | 3 | 25-10-2009 11:21 | |
Теория - [решено] Необходима помощь в составлении списка положений или инструкции по разработке ПО | Mystic | Программирование и базы данных | 1 | 05-01-2009 14:07 |
|