2013-06-25 2 views
0

Вот мои sp-коды. Я хочу выбрать следующие разные 6 строк из результата этого sp. Как я могу это сделать?как пропустить строки в запросе mysql

SELECT N.NewsId, 
     N.HeadCaption, 
     (SELECT Name FROM NewsCategory 
     WHERE NewsCategoryId = N.HeadLineCategoryId) Category, 
     N.PicUrl, 
     N.Creation, 
     SUBSTRING((fnStripTags(N.Description)),1,75) AS ShortDescription 
FROM News N 
INNER JOIN 
     (SELECT HeadlineCategoryID, MAX(NewsID) max_id 
     FROM News   
     GROUP BY HeadlineCategoryID) N_ 
    ON N.HeadlineCategoryID = N_.HeadlineCategoryID AND 
     N.NewsID = N_.max_id 
ORDER BY N.ViewIndex DESC 
LIMIT 6; 
+3

как это, выберите. , , limit 6 offset 6, здесь средство смещения, из которого номер строки –

+0

@ ArashM.Dehghani Можете ли вы написать это как ответ. Он работает нормально. Спасибо. – cagin

+0

это очень просто, просто положите «offset 6» в конце вашей команды, это будет как «limit 6 offset 6» –

ответ

2

Ладно, ладно, просто как этот

SELECT N.NewsId, 
     N.HeadCaption, 
     (SELECT Name FROM NewsCategory 
     WHERE NewsCategoryId = N.HeadLineCategoryId) Category, 
     N.PicUrl, 
     N.Creation, 
     SUBSTRING((fnStripTags(N.Description)),1,75) AS ShortDescription 
FROM News N 
INNER JOIN 
     (SELECT HeadlineCategoryID, MAX(NewsID) max_id 
     FROM News   
     GROUP BY HeadlineCategoryID) N_ 
    ON N.HeadlineCategoryID = N_.HeadlineCategoryID AND 
     N.NewsID = N_.max_id 
ORDER BY N.ViewIndex DESC 
LIMIT 6 limit 6; 

в конце кода, с "пределом 6", вы получаете следующие 6 строк из таблицы/источника

0

Попробуйте с SELECT DISTINCT вместо SELECT,

+0

Думаю, он хочет следующий 6 результат, вы правы, но здесь он другой, я не думаю, что он указывает на дублирование строк: D –

0

LIMIT Используйте функцию

Предложение LIMIT может использоваться для ограничения количества строк, возвращаемых в ЗЕЬЕСТЕ. LIMIT принимает один или два числовых аргумента, , которые должны быть неотрицательными целыми константами. С двумя аргументами первый аргумент определяет смещение первой строки для возврата, , а второй указывает максимальное количество возвращаемых строк.