2012-04-18 9 views
1

私はMsSQLサーバーを持っていますが、私はテーブルから行を選択しています。現在、私は2つの行を持っているので、別のクエリを作成せずに2番目の行の後に他の行がないかどうかチェックする方法が不思議でしたか?次の行が存在しない場合のSQLチェック

例えば

テーブルのユーザー

id name pass 

1  joe  123 

2  bob  abc 

何行だけのクエリと2の後に存在しない場合はどのように確認するのでしょうか?データを選択する現在のクエリと組み合わせることを喜んでしています。あなたが別の列としてクエリの行数を返すことができ

+0

それらの2つの行で? – JNK

+0

ページネーションをしようとしていますか?または、最後のクエリから行が追加されたかどうかを確認していますか? – Leven

+0

私はpaginateしようとしていますが、これより複雑です、jquery ajaxを使用し、ページをリフレッシュしないので、送信できる引数の数は限られています。次の行がないかどうかをSQLに確認するコマンドがあります。存在する? – Grigor

答えて

2

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

が、これは、テーブル内の行数、あなたのクエリによって返される行数をない言っていることに注意してください。しかし、選択項目に "TOP n"を指定すると、 "Top n"がない場合に返される行数が表示されます

2

ページめくりしようとしている場合そのトリックは、現在のページに実際に必要なレコードより1つ多くのレコードを照会することです。結果(mysql_num_rows)を数え、それをページサイズと比較することで、「次のページ」があるかどうかを判断できます。

mysqlを使用している場合は、問合せでSQL_CALC_FOUND_ROWS()を使用することもできます。この場合、LIMIT句なしで戻される行数が計算されます。多分、MsSQLのそれと同等のものがありますか?

1

テーブルの最初の2行を手動で挿入しているとします。

私はまた、あなたがPHPを使用していると仮定
SELECT * FROM users WHERE id > 2; 

のでmysql_num_rowsはデータがない場合は、あなたに0を返します。

はそれによると、私の考えは、idは、このような2つ以上ある場合だけ選択を行うことです見つからない場合は、クエリの行数が返され、ID番号2の後にデータを取得するためにwhileまたは何らかのループを実行する必要があることがわかります。

関連する問題