2012-11-26 92 views
-1

我有一個表,其中包括3個領域(其中包括),其中每個等於1我需要查詢返回記錄。
因此,如果所有3個字段都等於1,則查詢應該給出3條記錄。
如果兩個字段(三個中的任何一個)等於1,則查詢應該返回2條記錄,依此類推。MySQL查詢如何從單行返回多條記錄?

這樣的查詢將如何看?

+2

你爲什麼要這樣做?取單行並從那裏開始。爲什麼要進行額外的工作,將UGLY查詢合併爲一行3行,然後必須執行3次提取,而您可以使用ONE提取運行ONE查詢。 –

+1

這就是爲什麼 - 例如,我需要得到五個等於1的第一個字段,只有他們。如果在每一行中只有一個像這樣的字段,那麼我只是簡單地使用LIMIT。但是,因爲它是前五個可以位於兩行,但他們也可以通過5個不同的行傳播。那麼我怎麼知道在哪裏停止查詢呢? – user1430841

回答

0

這應該做你需要的東西:

SELECT * from table WHERE field1=1 
UNION ALL 
SELECT * from table WHERE field2=1 
UNION ALL 
SELECT * from table WHERE field3=1 

的邏輯是,我們選擇我們需要爲每個標準逐個行,然後創建它們的結合。然而,這並不是真的很好......然後,我再也沒有遇到過這樣的要求:「野外」......