2011-07-11 114 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