0

テーブルに値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の使用

4

2 に答える 2

1

最も近い下位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
于 2012-05-12T13:54:19.123 に答える
0

mysqlの場合:

SELECT min(id)
FROM table_name
WHERE id > 3 AND value = 1

PHPでは、最初の値である数値を「3」に置き換えます。

私はあなたの質問を完全には理解していないかもしれませんが、これが答えだと思います。

于 2012-05-12T13:26:52.950 に答える