1

podcastsやったことアーティストタイトルミックス番号の日付などで構成されたテーブルがあります。個別のメソッドを持つクラスを使用して、それらを別々に表示しています

私の質問は、どのようにしてdesc行を取得するのですか?このような(mix_number is an int)

 select mix_name, date where mix_number = MAX(mix_number) limit 1 //1st query

 select mix_name, date where mix_number = MAX(mix_number - 1)//this would be the second query

 select mix_name, date where mix_number = MAX(mix_number - 2)//3rd query

where clause番号を追加するたびに更新したいので、番号をハードコーディングしたくありません。

私は本当に尋ねていますかMAX(mix_number)、それともMAX(mix_number-1)適切ですか?私はそれをこのように機能させることができません

これが理解できることを願っています。メソッドに他のクエリがありますが、ここでの回答でそれらも修正されます。

4

3 に答える 3

1

最初のクエリ:

SELECT mix_name, date
FROM table
ORDER BY mix_number DESC
LIMIT 1, 0

2番目のクエリ:

SELECT mix_name, date
FROM table
ORDER BY mix_number DESC
LIMIT 1, 1

同じクエリのすべての行が必要な場合:

SELECT mix_name, date
FROM table
ORDER BY mix_number DESC

同じmix_numberの行をより正確にソートする場合:

SELECT mix_name, date
FROM table
ORDER BY mix_number DESC, date DESC
于 2013-01-10T00:34:49.593 に答える
1
select mix_name, date 
FROM tableName
where mix_number = (SELECT MAX(mix_number) FROM tableName)
LIMIT 1

また

select mix_name, date 
FROM tableName
where mix_number = (SELECT MAX(mix_number) FROM tableName) - 1
LIMIT 1
于 2013-01-10T00:26:53.350 に答える
1

ORDER BY条項が必要です。

select mix_name, date order by mix_number desc

追加LIMIT 0, 1が最初のクエリになります。LIMIT 1, 12番目になります。等々

于 2013-01-10T00:37:26.657 に答える