2012-07-17 124 views
0

我需要这个PHP代码转换为MySQL查询相当于转换PHP条件语句到MySQL的if-then条件语句

$name = 'John Doe'; 
if($citizenship == 'o') { 
    if($country == 'US') { 
    $status = 'US-INTL'; 
    }else{ 
    $status = 'INTL'; 
    } 
} elseif { 
    $status = 'US' 
}  

我有MySQL的麻烦,如果性陈述,甚至阅读他们很小的后documentation就可以了。我尝试了不同的嵌套技术,但都失败了,因为我不知道语法。例如:

SELECT name, IF citizenship='US' THEN 
    IF country='US' THEN 'US-INTL' AS status 
    ELSEIF 'INTL' AS status 
ELSE 
    'US' AS status 
END IF 
FROM people 

的MySQL应该返回类似

_________________ 
name  | status 
----------------- 
John Doe | US-INTL 
----------------- 

回答

4
SELECT name, 
     CASE WHEN citizenship = 'US' 
      THEN CASE WHEN country='US' 
         THEN 'US-INTL' 
         ELSE 'INTL' 
       END 
      ELSE 'US' 
     END status 

或MySQL特定的方式:

SELECT name, 
     IF(citizenship = 'US', 
      IF(country='US', 'US-INTL', 'INTL'), 
      'US') status 
+0

蛋cellent!两个人都工作。我会选择第一选择,因为它对我更有意义,并且更具可读性。 – user785179 2012-07-17 23:51:08