テーブルに値0または1を含む列があります。次に、1の最後の期間の開始を選択します。
2列の次のテーブルがあると想像してください。1の最後の期間はIDの4と3です。この期間の開始はID=3です。
ID-値
- 5-0
- 4-1<-最後の期間
- 3-1<-最後の期間
- 2-0
- 1-1<-かなり前の期間
- 0-0
しかし、すべてのレコードを選択せずに、1つのクエリ(およびおそらく少しのPHP)でこのレコードを選択するにはどうすればよいですか?
編集:
MySQLの使用
最も近い下位IDの値が0である値1の最高IDを見つけてみることができます。SQLでは次のようになります。
SELECT p1.id FROM periods p1
WHERE p1.value = 1
AND ( SELECT p2.value FROM periods p2
WHERE p2.id<p1.id
ORDER BY p2.id DESC LIMIT 1 ) = 0
ORDER BY p1.id DESC LIMIT 1
mysqlの場合:
SELECT min(id)
FROM table_name
WHERE id > 3 AND value = 1
PHPでは、最初の値である数値を「3」に置き換えます。
私はあなたの質問を完全には理解していないかもしれませんが、これが答えだと思います。