MySQL选择大小写

时间:2015-05-02 22:18:40

标签: mysql sql database case

我有那些表,我想同时检查相同的属性:

Person
id---name
1----Paul
2----Tom  
3----Jim 

Age
id---wert------personId  
1----28--------1 
2----25--------1  
3----30--------3 

我想做这样的事情。

    select * from Person p, Age where personId = p.id and CASE WHEN 
name = 'Paul' THEN Age > 28 WHEN name = 'Tom' THEN Age <....

怎么可能?在WHERE子句中使用CASE THEN吗?请不要考虑表格的结构,而只考虑原则。

任何想法? 谢谢

2 个答案:

答案 0 :(得分:1)

你可能会这样做

 select 
       * 
  from 
    Person p, Age  
  where personId = p.id 
 and CASE 
          WHEN name = 'Paul' THEN Age > 28 
          WHEN name = 'Tom' THEN Age <....  
          WHEN expr then expr that evals to bool
       END

答案 1 :(得分:0)

案例当我相信需要成为表达的一部分,而不是表达本身。它的常见用例是在select中,但是你可以在where。

中使用它

在选择中,这将是:

select 
    case name
        when 'paul' then 28
        when 'jim' then 30
    end
from X

要在您执行此操作的位置使用它:

select * from X where age = case name when 'jim' then 28 else 30 end

根据您尝试实现的目标,您可能需要在where子句中考虑OR语句而不是case。