wiem, że CASE
składni SQL jest następujący:Jak działa CASE MySQL?
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
Ja jednak nie rozumiem, jak to działa, prawdopodobnie dlatego, że myślę o nim jako o rachunku if
.
Jeśli mam na przykład pole w tabeli user_role
, które zawiera nazwy takie jak "Menedżer", "Czas w Partii" itp., W jaki sposób wygenerować pole role_order
z inną liczbą w zależności od roli. W przypadku tego przykładu "jeśli user_role =" Manager "to role_order = 5".
Uwaga ja szukam uczyć człowieka jak łowić odpowiedź zamiast dać człowiekowi rybę odpowiedź.
co mówisz ma sens, jestem nadal mylić o tym, gdzie to idzie wewnątrz reszty zapytania próbowałem 'select *, Twój kod AS role_order FROM table' Ale ciągle dostaję błędy. Czy możesz pokazać przykład używając całego zapytania? Dziękuję Ci! –
Rozgryzłem to, Powinieneś zakończyć z "END", a nie "END CASE" http://dev.mysql.com/doc/refman/5.0/en/case-statement.html Dziękujemy! –
Dla tych, którzy nie czytali dokumentów połączonych powyżej, możesz nie przeczytać tego komentarza, ale na wszelki wypadek: Zauważ, że istnieją dwie różne formy "CASE", z bardzo podobną składnią, ale nieco innym celem/użyciem. .. Zobacz też [to pytanie] (http://stackoverflow.com/q/12436859/2359271). – Air