如何根据WHERE的条款实现IF ELSE?

时间:2013-09-26 09:31:51

标签: mysql sql

我想在 WHERE 的filterring子句下使用 If Else (或类似情况确定技术:)。 这是我的示例代码。

select * from some_table
where 
record_valid_flg = 1 and
if(user_param = '1')
then age > 20
else
name like 'Mr%'
end if

我怎么能搞清楚。我真的很感激任何建议..谢谢!

4 个答案:

答案 0 :(得分:1)

CASE WHEN user_param = '1' THEN age > 20 ELSE name like 'Mr%' END

答案 1 :(得分:1)

尝试使用CASE;

SELECT * from some_table
WHERE  record_valid_flg = 1 
AND
CASE 
     WHEN  (user_param = '1') THEN age > 20 
     ELSE name like 'Mr%' 
END 

答案 2 :(得分:1)

像这样使用CASE:

select * from some_table
   where 
    record_valid_flg = 1 
    and CASE
      WHEN user_param = '1' THEN age > 20
      ELSE name like 'Mr%'
     END;

答案 3 :(得分:1)

你可以像这样做

SELECT 
    *
FROM some_table
WHERE record_valid_flg = 1
    AND IF(user_param = '1', age > 20, name LIKE 'Mr%')
相关问题