2012-05-12 29 views
0

我的表中有一列包含值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

什麼是這些表之間的關係? –

+0

這只是一張桌子。 Id和VALUE是列。 – OrangeTux

+0

你想要所有的值爲1的ID,對嗎? –

回答

1

你可以嘗試尋找最高的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 
0

在MySQL:

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

在你的PHP你會代替數 '3' 這是你的價值數從...開始。

我相信這是答案,但我可能不完全理解你的問題。

相關問題