我的表中有一列包含值0或1。 现在我想选择最后一段的开始1分的。SQL:选择所有记录匹配值'x',但在出现值'y'时停止
想象一下,我有两列的下一张桌子。的1的最后一个周期是ID的4和3 这个时期的开始是ID = 3
ID - VALUE
- 5 - 0
- 4 - 1 < - 最后周期
- 3 - 1 < - 最后周期
- 2 - 0
- 1 - 1 < - 段更长前
- 0 - 0
但是,如何选择一条查询(也许有点PHP)并没有选择所有记录这个记录?
编辑:
使用MySQL
我的表中有一列包含值0或1。 现在我想选择最后一段的开始1分的。SQL:选择所有记录匹配值'x',但在出现值'y'时停止
想象一下,我有两列的下一张桌子。的1的最后一个周期是ID的4和3 这个时期的开始是ID = 3
ID - VALUE
但是,如何选择一条查询(也许有点PHP)并没有选择所有记录这个记录?
编辑:
使用MySQL
你可以尝试寻找最高的ID值为1,其最接近的低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' 这是你的价值数从...开始。
我相信这是答案,但我可能不完全理解你的问题。
什么是这些表之间的关系? –
这只是一张桌子。 Id和VALUE是列。 – OrangeTux
你想要所有的值为1的ID,对吗? –