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 に答える