2012-09-05 47 views
1

我手上有一个非常奇怪的问题。我有一个项目,以前的数据库工程师没有给出db设计思想,现在我坚持下去。我的问题很简单:MySQL控制流建议(CASE/THEN)

我和他们中的一个应该,如果一个字段设置与否,即

如果FIELD1是0执行两种不同的选择查询 - >执行查询1 如果字段1是1 - >执行查询2

到目前为止,我来到这里:

SELECT should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX' 
CASE should_i_care 
    WHEN '1' then call query2 
    WHEN '0' then call query1 

但发现我不能宣布我要运行的查询。有什么建议么?

+0

这不可能是一个声明,它需要一个脚本或程序。你需要使用if语句。 –

回答

1

这应该是一个脚本或存储过程是这样

DECLARE shouldICare INT; 

SELECT @shouldICare := should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX'; 

IF @shouldICare = 1 THEN 
    Call query2; 
ELSE 
    Call query1; 
END IF; 
+0

从长远来看,重新设计表格是更好的选择,但是感谢您使用这个整洁的解决方案。 – Anonymous

+0

不客气。祝你好运 :) – hgulyan