9

mySQLでIDの周りのIDを取得する必要があります。

例:

表のID:

2, 4, 5, 9, 11, 15, 19, 22, 25

たとえば、ID9の周りの5つのIDを知る必要があります。クエリは次を返す必要があります。

4, 5, 9, 11, 15

ありがとう!

4

1 に答える 1

16

考えられる解決策は

  • IDを差し引いた各IDの絶対値を計算します。
  • 結果を注文し、結果セットを5レコードに制限します。

SQLステートメント

SELECT ABS(ID - 9), *
FROM   MyTable
ORDER BY
       ABS(ID - 9)
LIMIT  5

編集 (このソリューションで発生する可能性のある欠陥を指摘するためのthxからypercube)

左から2つのIDを取得し、右から2つのIDを取得することが目的の場合、ステートメントは次のように調整できます。

SELECT * FROM MyTable WHERE ID <= 9 ORDER BY ID DESC LIMIT 3 
UNION ALL
SELECT * FROM MyTable WHERE ID > 9  ORDER BY ID ASC  LIMIT 2
于 2012-04-11T07:29:01.587 に答える