2012-04-18 4 views
1

У меня есть сервер MsSQL, и что я делаю, это выбор строк из таблицы. В настоящее время у меня есть две строки, поэтому мне было интересно, как я могу проверить, нет ли других строк после второго, не делая другого запроса?Проверка SQL, если следующая строка не существует

Для примера

таблица пользователей

id name pass 

1  joe  123 

2  bob  abc 

Как я могу проверить, если Существует нет строки после 2 только с запросом? Я готов объединить его с моим текущим запросом, который просто выбирает данные.

+0

Откуда вы знаете, что хотите только посмотреть в этих двух рядах? – JNK

+0

Вы пытаетесь сделать разбивку на страницы? Или вы просто смотрите, если строка была добавлена ​​со времени вашего последнего запроса? – Leven

+0

Я пытаюсь разбивать на страницы, но это сложнее, чем это, его использование jquery ajax и обновление страницы, поэтому количество аргументов, которые могут быть отправлены, ограничено, так или иначе есть команда в sql, чтобы проверить, не следующая ли следующая строка существовать? – Grigor

ответ

2

Вы можете вернуть количество строк в запросе в качестве другого столбца:

SELECT id, name, pass, count(*) over() as rows 
FROM users 

Имейте в виду, что это говорит вам количество строк, возвращаемых запросом, а не количество строк в таблице , Однако, если вы укажете «TOP n» в своем выборе, столбец строк даст вам количество строк, которые были бы возвращены, если у вас не было «Top n»

2

Если вы пытаетесь разбивать страницы на страницы трюк состоит в том, чтобы запросить еще одну запись, чем вам действительно нужна для текущей страницы. Считая результат (mysql_num_rows) и сравнивая его с размером страницы, вы можете решить, есть ли «следующая страница».

Если вы использовали mysql, вы также можете использовать SQL_CALC_FOUND_ROWS() в своем запросе, который вычисляет количество строк, которые будут возвращены без предложения LIMIT. Может быть, есть эквивалент для MsSQL?

1

Я предполагаю, что вы вручную вставляете первые 2 строки таблицы.

В соответствии с этим, моя идея состоит в том, чтобы просто сделать выбор, где идентификатор более чем 2, как это:

SELECT * FROM users WHERE id > 2; 

Я также предполагаю, что вы используете PHP так mysql_num_rows вернет вам 0, если нет данных , в противном случае он вернет вам количество строк из вашего запроса, и теперь вы знаете, что вам нужно сделать while или некоторый цикл для извлечения данных после идентификатора номера 2.

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