我的表中有一个包含值 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
您可以尝试查找值为 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
在 mysql 中:
SELECT min(id)
FROM table_name
WHERE id > 3 AND value = 1
在您的 php 中,您可以将数字“3”替换为您开始使用的值。
我相信这就是答案,尽管我可能不完全理解你的问题。