1

Androidでは、mysqlの現在のインデックスの前の5つのレコードと最後の5つのレコードを取得する方法を知る必要がありますか?

現在のインデックスの前の5つのレコードまたは最後の5つのレコードを取得する方法しか知りません。

現在のインデックスの前の5つのレコードを取得します

Select * from myTable Where myid < 10 order by myid DESC Limit 10

現在のインデックスの最後の5つのレコードを取得します

Select * from myTable Where myid > 10 order by myid ASC Limit 10

しかし、これら2つのステートメントを組み合わせる方法がわかりません。

4

2 に答える 2

1

これを試して:

SELECT *
FROM   myTable 
WHERE  myid BETWEEN currentIndex-5 AND currentIndex+5 AND
       myid <> currentIndex

編集:

あなたのmid列には、1、2、3、4、nのように順番にデータが含まれていると思います。

于 2012-10-12T04:21:50.940 に答える
1

同じ列数の2つのクエリを組み合わせるには、次を使用しますUNION

Select * from (Select * from myTable Where myid < 10 order by myid DESC Limit 10)
Union All
Select * from (Select * from myTable Where myid > 10 order by myid ASC Limit 10)

( SQLiteはの直接サブクエリをSelectサポートしていないため、double-が必要です。)LimitUnion

全体的な結果を並べ替える場合Order by midは、最後に追加するだけです。

于 2012-10-12T06:57:58.767 に答える