0

我需要将此 PHP 代码转换为等效的 MySQL 查询

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

我在 MySQL 的 if-then 语句上遇到了问题,即使在阅读了他们非常少的文档之后也是如此。我尝试了不同的嵌套技术,但它们都失败了,因为我不知道语法。例如:

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

1 回答 1

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
于 2012-07-17T23:40:10.583 回答