MySQL fournit deux constructions appelées Case Expression et Case Statement, qui peuvent sembler interchangeables. Cependant, comprendre leurs fonctionnalités spécifiques est crucial.
L'expression de cas évalue les conditions et renvoie un résultat correspondant. Il est généralement utilisé dans des expressions, comme dans une instruction SELECT ou dans le cadre d'une autre expression. La syntaxe est :
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Par exemple :
SELECT CASE WHEN type = 1 THEN 'foo' WHEN type = 2 THEN 'bar' ELSE 'baz' END AS name_for_numeric_type FROM sometable`
Contrairement à l'expression Case, l'instruction Case exécute l'une d'un ensemble d'instructions basées sur une condition. Il est généralement utilisé dans les programmes stockés pour effectuer des opérations conditionnelles. La syntaxe est :
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE
Par exemple :
CASE WHEN action = 'update' THEN UPDATE sometable SET column = value WHERE condition; WHEN action = 'create' THEN INSERT INTO sometable (column) VALUES (value); END CASE
La principale distinction entre Case Expression et Case Statement réside dans leur résultat d'évaluation. L'expression Case renvoie une valeur, tandis que l'instruction Case exécute un ensemble d'instructions. Cette différence détermine leurs cas d'utilisation appropriés.
Bien que la syntaxe de l'expression de cas soit cohérente entre les versions de MySQL, la syntaxe des instructions de cas peut varier entre les programmes stockés et les requêtes normales. Lorsqu'il est utilisé dans les requêtes normales, le mot-clé "END" est omis, tandis que dans les programmes stockés, il est requis.
**Stored Program**
CASE
WHEN ...
...
ELSE ...
FIN DE CAS
**Normal Query**
CAS
QUAND ...
...
AILLEURS ...
CAS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!