2011-07-11 115 views
4

我有一種情況,我需要在MySql中執行兩個不同的查詢,在MySql中可以這樣做。這是選擇查詢。有條件的MySql查詢

eg. Query1: Select * from table1 
    Query2: Select * from table2 

現在我該怎樣執行這些查詢

conditonally

select * from if(somecondition) then Query 1 else query 2 
+2

有這樣的事,作爲一個['IF()'控制流功能](http://dev.mysql.com/doc/refman/5.0/en/control-flow- functions.html#function_if)。但是,很難判斷這是否是您需要的。我想你必須提供數據,表格結構和所需輸出的例子。 – jensgram

+0

你的狀況如何? –

+0

爲什麼這個問題被低估:( – kinkajou

回答

3
IF MyCondition = True THEN 
    Select * from table1; 
ELSE 
    Select * from table2; 
END IF; 

Reference

+1

我認爲這是你想要的如果你想從一個查詢內部分支,我想你會很失望,因爲TableA和TableB可能有不同的列,我的理解是數據庫服務器必須知道哪些列將從子查詢返回 –

+1

這將不得不在存儲過程中。問題要麼,除非你的代碼不準備處理這種情況 – siride

+0

@hamlin謝謝。@siride我不想存儲過程,但 – kinkajou

0

我認爲這是可以利用工會, 我有一個小例子來分享希望它可以幫助做...

實施例:

SELECT TEXT,language 
FROM TABLE 
WHERE LANGUAGE = 'spanish' 
union all 
select text,language 
from TABLE as t 
where language = 'english' 
and not exists 
(select * 
from table 
where language = 'spanish' 
and table.pid = t.pid) 
+0

這不是一個真正的條件,雖然 –

+0

@謝謝,但不是我的要求 – kinkajou