Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać instrukcji CASE w MySQL?

Z uwagi na ogromną ilość danych generowanych każdego dnia, ważne jest, aby pobierać dane na podstawie kilku warunków. W tym artykule na temat instrukcji CASE w MySQL omówię, jak używać tej instrukcji do pobierania danych o jednym warunku lub wielu warunkach.

W tym artykule zostaną omówione następujące tematy:

  • Wprowadzenie do SQL
  • Jaki jest cel SQL?
  • CASE w MySQL
  • Składnia CASE w MySQL
  • Przykład CASE w MySQL

Co to jest SQL?

SQL to specyficzny dla domeny język, który jest szeroko stosowany w programowaniu. Jest przeznaczony do zarządzania danymi zawartymi w relacyjnym systemie zarządzania bazami danych (RDBMS) lub do przetwarzania strumieniowego w relacyjnym systemie zarządzania strumieniem danych. Ogólnie rzecz biorąc, SQL jest standardowym językiem, który pomaga przechowywać, manipulować i pobierać dane w bazach danych.

Jaki jest cel SQL?

SQL jest zasadniczo używany do komunikacji z bazą danych. Według ANSI (American National Standards Institute) jest uważany za standardowy język systemów zarządzania relacyjnymi bazami danych (RDBMS). Używamy instrukcji SQL do wykonywania zadań, takich jak aktualizacja, wstawianie, usuwanie lub pobieranie danych z bazy danych.

Co to jest instrukcja CASE w MySQL?

Instrukcja CASE w MySQL jest sposobem obsługi logiki if/else. Jest to rodzaj instrukcji sterującej, która tworzy komórkę języków programowania, ponieważ kontrolują one wykonywanie innych zestawów instrukcji.

Instrukcja CASE przechodzi przez różne warunki i zwraca wartości, gdy pierwszy warunek zostanie spełniony (jak instrukcja IF-THEN-ELSE w językach niskiego poziomu). Gdy warunek jest spełniony, przestanie przechodzić i zwróci wynik. Jeśli żaden z warunków nie jest spełniony, zwraca wartość w klauzuli ELSE.

Jeśli nie ma klauzuli ELSE i żaden z warunków nie jest spełniony, po prostu zwraca NULL.

Składnia instrukcji CASE w MySQL

Podstawowa składnia:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionx THEN resultx
    ELSE result
END;

Istnieją dwa sposoby uzyskania instrukcji CASE-Switch:

  • Pobiera zmienną o nazwie case_value i dopasowuje ją do pewnej listy instrukcji.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Rozważ opcję search_condition zamiast równości zmiennych i odpowiednio wykonaj instrukcję lista_instrukcji.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Przykład instrukcji CASE w MySQL

Rozważmy tabelę:STUDENT

Stół ucznia

Identyfikator ucznia Nazwa Dział Płeć
001 Akasz CS M
002 Bikram Mech M
003 Chandan CS M
004 Deepak CS M
005 Elicia EC F
006 Fernandy Mech F

Przykład: Rozważ scenariusz, w którym musisz zmodyfikować nazwy działów do ich pełnej formy. Jeśli nazwa działu to CS, należy ją przekonwertować na Informatykę; Podobnie Mech powinien zostać przekonwertowany na Mechaniczny, a EC na Elektroniczny i Komunikacyjny.

Przykładowe zapytanie

CASE department_name
WHEN 'CS'
  THEN UPDATE Student SET
  department='Computer Science';
 WHEN 'EC'
  THEN UPDATE Student SET
  department='Electronics and Communication';
 ELSE UPDATE Student SET
 department=’Mechanical';
END;

Wyjście:

Odpowiednie nazwy działów zostaną zmienione w następujący sposób:

Identyfikator ucznia Nazwa Dział Płeć
001 Akasz Informatyka M
002 Bikram Mechaniczny M
003 Chandan Informatyka M
004 Deepak Informatyka M
005 Elicia Elektronika i komunikacja F
006 Fernandy Mechaniczny F

Przykład: Rozważ scenariusz, w którym musisz wybrać wszystkie pola odpowiadające tabeli Student. Ponieważ wartości zapisane w polu Płeć są wartościami jednoznacznymi (M/K), napiszmy zapytanie, które zmieni M na Mężczyzna i F na Kobieta.

Przykładowe zapytanie

SELECT Student ID, Name, Department,
CASE Gender
 WHEN'M' THEN 'Male'
 WHEN'F' THEN 'Female'
END
FROM Student;

Wyjście:

Identyfikator ucznia Nazwa Dział Płeć
001 Akasz Informatyka Mężczyzna
002 Bikram Mechaniczny Mężczyzna
003 Chandan Informatyka Mężczyzna
004 Deepak Informatyka Mężczyzna
005 Elicia Elektronika i komunikacja Kobieta
006 Fernandy Mechaniczny Kobieta

Przełącznik CASE w SQL — sortowanie niestandardowe

Przykładowe zapytanie

CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS
SELECT StudentID, Name, Gender, Department
FROM Student
ORDER BY
  CASE WHEN @ColToSort='Department' THEN Department
       WHEN @ColToSort='Name' THEN Name
       WHEN @ColToSort='Gender' THEN Gender
       ElSE StudentID
  END;

Wyjście:

Wyniki są sortowane zgodnie z podanym polem.

Powyższa procedura (funkcja) przyjmuje jako argument zmienną typu danych varchar i na tej podstawie sortuje krotki w tabeli Student. Co więcej, możemy również użyć instrukcji CASE do porównania warunków.

Przykład: Rozważ tabelę o nazwie KONTAKTY, która zawiera contactID i websiteID. Zgodnie z tymi szczegółami użytkownik może poruszać się po tych linkach:„TechOnTheNet.com” lub „CheckYourMath.com”.

Przykładowe zapytanie

SELECT
CASE
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Do tej pory musi być jasne, że podczas pisania instrukcji Case w MySQL jednym z najważniejszych czynników jest „uporządkowanie ich we właściwy sposób”. Pamiętaj tylko, że warunki są oceniane w podanej przez Ciebie kolejności. Gdy dowolny warunek stanie się spełniony, instrukcja CASE zwróci wynik i nie będzie dalej oceniać warunków. Zachowaj więc ostrożność podczas wybierania kolejności, w której podajesz swoje warunki.

Jeśli chcesz dowiedzieć się więcej o MySQL i poznać tę relacyjną bazę danych typu open source, zapoznaj się z naszym szkoleniem certyfikacyjnym MySQL DBA, które obejmuje szkolenie na żywo prowadzone przez instruktora i doświadczenie w projektach życiowych. To szkolenie pomoże ci dogłębnie zrozumieć MySQL i pomoże ci osiągnąć mistrzostwo w tym temacie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego „Oświadczenia CASE w MySQL”, a my skontaktujemy się z Tobą.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql Error 150 - Klucze obce

  2. Jak ustawić wybraną pozycję w rozwijanym polu?

  3. MySQL AUTO_INCREMENT nie wycofuje się

  4. Funkcja SUM() w MySQL

  5. Zrozumienie transakcji pdo mysql