SQL Serverで以下のコードを使用してインデックスiからjまでの行を選択できます。mysqlでそれを行う方法は?
select * from
(SELECT ROW_NUMBER() OVER (ORDER BY FieldName asc) as row,
* from TableName)
WHERE row between STARTINDEX AND ENDINDEX
SQL Serverで以下のコードを使用してインデックスiからjまでの行を選択できます。mysqlでそれを行う方法は?
select * from
(SELECT ROW_NUMBER() OVER (ORDER BY FieldName asc) as row,
* from TableName)
WHERE row between STARTINDEX AND ENDINDEX
私はSQLに精通していないので、質問を完全に正しく理解したかどうかわかりません.FieldNameで結果を並べ替え、作成した行番号に基づいて結果の一部を選択したいとします. MySQL では次のように記述します。
SELECT *
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEX
MySQL LIMIT インデックスではゼロから始まり (SQL コードでは 1 から)、LIMIT 句の他の数値は、取得したいレコードの数です。
編集:結果に行番号がありませんでした。結果に行番号が必要な場合は、次のようになります。
SET @num = STARTINDEX-1;
SELECT @NUM := (@NUM + 1) AS row, TableName.*
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEX
STARTINDEX は最初の行の番号と同じです。これは、SELECT が最初でも @NUM に 1 を追加するためです。