0

我的表中有一个包含值 0 或 1 的列。现在我想选择最后一个 1 周期的开始。

想象一下,我有下一张有 2 列的表格。1 的最后一个周期是 ID 的 4 和 3。这个周期的开始是 ID = 3。

ID - 值

  • 5 - 0
  • 4 - 1 <-- 上一期
  • 3 - 1 <-- 上一期
  • 2 - 0
  • 1 - 1 <-- 一段时间以前
  • 0 - 0

但是如何通过一个查询(可能还有一点 PHP)选择这条记录而不选择所有记录?

编辑:

使用 MySQL

4

2 回答 2

1

您可以尝试查找值为 1 的最高 id,而最近的较低 id 的值为 0。在 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 回答