2010-03-13 4 views
0

я следующее имя таблицы базы данных tbl_recвыбрать топ-50 записей из SQL

   recno uid uname points 
      ============================ 
       1  a  abc  10 
       2  b  bac  8 
       3  c  cvb  12 
       4  d  aty  13 
       5  f  cyu  9 
       ------------------------- 
       ------------------------- 

у меня есть около 5000 записей в этой таблице.

Я хочу выбрать первые 50 записей о более высоких точках.

Я не могу использовать предельный оператор, поскольку я уже использую предел для подкачки.

Благодаря

+0

Я думаю, нам нужно будет узнать ваш текущий запрос. Пейджинг будет иметь прямое влияние на то, что означает запись «первая» (это «первая» на первой странице или какая-то другая страница?). – cmptrgeekken

+0

Вам действительно нужно использовать разбиение на страницы, чтобы отображать только 50 записей? Обычно все эти верхние XX отображаются на одной странице. –

ответ

4

я хочу, чтобы выбрать первые 50 высших точек записи.

Тогда:

SELECT tr.* 
    FROM TBL_REC tr 
ORDER BY tr.points DESC 
    LIMIT 50 

я не могу использовать предельное утверждение, как я уже используется предел для пейджинга.

Затем с помощью подзапроса:

SELECT x.* 
    FROM (SELECT tr.* 
      FROM TBL_REC tr 
     ORDER BY tr.points DESC 
     LIMIT 50) x 
LIMIT a, b --for your pagation 
+0

Подумайте об этом вопросе немного больше :) –

1

Я глуп. Сначала это не получилось.
Pagination себя is отображение верхней XX!

Хотите, чтобы это было pagitnated? Хорошо, закажите таблицу, как вы пожелаете, и сделайте все, что захотите. Затем разбивайте страницы до 50, затем остановитесь.

Смежные вопросы