Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng câu lệnh CASE trong MySQL?

Với lượng dữ liệu khổng lồ được tạo mỗi ngày, điều quan trọng là phải truy xuất dữ liệu dựa trên một số điều kiện. Trong bài viết này về câu lệnh CASE trong MySQL, tôi sẽ thảo luận về cách sử dụng câu lệnh này, để truy xuất dữ liệu trên một điều kiện duy nhất hoặc nhiều điều kiện.

Các chủ đề sau sẽ được đề cập trong bài viết này:

  • Giới thiệu về SQL
  • Mục đích của SQL là gì?
  • CASE trong MySQL
  • Cú pháp của CASE trong MySQL
  • Ví dụ về CASE trong MySQL

SQL là gì?

SQL là ngôn ngữ dành riêng cho miền được sử dụng rộng rãi trong lập trình. Nó được thiết kế để quản lý dữ liệu có trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) hoặc để xử lý luồng trong hệ thống quản lý luồng dữ liệu quan hệ. Tôi nói chung, SQL là một ngôn ngữ chuẩn giúp lưu trữ, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu.

Mục đích của SQL là gì?

SQL về cơ bản được sử dụng để giao tiếp với cơ sở dữ liệu. Theo ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ), nó được coi là ngôn ngữ tiêu chuẩn cho các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Chúng tôi sử dụng các câu lệnh SQL để thực hiện các tác vụ như cập nhật, chèn, xóa hoặc truy xuất dữ liệu từ cơ sở dữ liệu.

Câu lệnh CASE trong MySQL là gì?

Câu lệnh CASE trong MySQL là một cách xử lý logic if / else. Nó là một loại câu lệnh điều khiển tạo thành ô ngôn ngữ lập trình khi chúng điều khiển việc thực thi các bộ câu lệnh khác.

Câu lệnh CASE đi qua các điều kiện khác nhau và trả về các giá trị khi và khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh IF-THEN-ELSE trong các ngôn ngữ cấp thấp). Khi một điều kiện là đúng, nó sẽ ngừng truyền và trả về kết quả. Nếu không có điều kiện nào là đúng, nó trả về giá trị trong mệnh đề ELSE.

Nếu không có mệnh đề ELSE và không có điều kiện nào là đúng, nó chỉ trả về NULL.

Cú pháp của câu lệnh CASE trong MySQL

Cú pháp cơ bản:

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

Có thể có hai cách để đạt được câu lệnh CASE-Switch:

  • Lấy một biến có tên là case_value và khớp nó với một số statement_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Xem xét điều kiện tìm kiếm thay vì bình đẳng biến và thực thi câu lệnh_danh sách cho phù hợp.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Ví dụ về câu lệnh CASE trong MySQL

Hãy xem xét một bảng:STUDENT

Bảng sinh viên

Mã số sinh viên Tên Cục Giới tính
001 Akash CS M
002 Bikram Mech M
003 Chandan CS M
004 Deepak CS M
005 Elicia EC F
006 Fernandes Mech F

Ví dụ: Hãy xem xét một tình huống, trong đó bạn phải sửa đổi tên bộ phận thành dạng đầy đủ của chúng. Nếu tên nợ là CS, nó nên được chuyển đổi thành Khoa học máy tính; Tương tự như vậy, Mech phải được chuyển đổi thành Mechanical.and EC thành Electronic and Communication.

Truy vấn mẫu

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;

Đầu ra:

Các tên bộ phận tương ứng được đổi tên như sau:

Mã số sinh viên Tên Cục Giới tính
001 Akash Khoa học Máy tính M
002 Bikram Cơ khí M
003 Chandan Khoa học Máy tính M
004 Deepak Khoa học Máy tính M
005 Elicia Điện tử và Truyền thông F
006 Fernandes Cơ khí F

Ví dụ: Hãy xem xét một tình huống, trong đó bạn phải chọn tất cả các trường tương ứng với bảng Sinh viên. Vì các giá trị được viết trong trường Giới tính là các giá trị ký tự đơn (M / F), chúng ta hãy viết truy vấn để thay đổi M thành Nam và F thành Nữ.

Truy vấn Mẫu

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

Đầu ra:

Mã số sinh viên Tên Cục Giới tính
001 Akash Khoa học Máy tính Nam
002 Bikram Cơ khí Nam
003 Chandan Khoa học Máy tính Nam
004 Deepak Khoa học Máy tính Nam
005 Elicia Điện tử và Truyền thông Nữ
006 Fernandes Cơ khí Nữ

Chuyển đổi CASE trong SQL- Sắp xếp Tùy chỉnh

Truy vấn Mẫu

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;

Đầu ra:

Kết quả đầu ra được sắp xếp theo trường được cung cấp.

Thủ tục trên (hàm) lấy một biến kiểu dữ liệu varchar làm đối số và trên cơ sở đó, sắp xếp các bộ giá trị trong bảng Student. Hơn nữa, chúng ta cũng có thể sử dụng câu lệnh CASE để so sánh các điều kiện.

Ví dụ: Hãy xem xét một bảng có tên CONTACTS chứa contactID và một websiteID. Theo các chi tiết này, người dùng có thể điều hướng qua các liên kết sau:‘TechOnTheNet.com’ hoặc ‘CheckYourMath.com’.

Truy vấn Mẫu

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

Hiện tại, phải rõ ràng rằng trong khi viết các câu lệnh Case trong MySQL, một yếu tố quan trọng nhất là "sắp xếp chúng theo đúng cách". Chỉ cần nhớ rằng các điều kiện được đánh giá theo thứ tự do bạn liệt kê. Khi bất kỳ điều kiện nào trở thành đúng, câu lệnh CASE sẽ trả về kết quả và không đánh giá các điều kiện nữa. Vì vậy, hãy cẩn thận khi chọn thứ tự mà bạn liệt kê các điều kiện của mình.

Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem Khóa đào tạo chứng chỉ MySQL DBA của chúng tôi, đi kèm với khóa đào tạo trực tiếp do người hướng dẫn và thực- trải nghiệm dự án cuộc sống. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn thành thạo chủ đề này.

Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của “Câu lệnh CASE trong MySQL” này và chúng tôi sẽ liên hệ lại với bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp CẬP NHẬT SQL - Được DBMS liệt kê

  2. Nâng cấp giản đồ trực tuyến trong MySQL Galera Cluster bằng phương pháp RSU

  3. Cách quản lý cơ sở dữ liệu MySQL, người dùng và bảng từ dòng lệnh

  4. 2017 @ Somenines:Kỷ niệm những câu chuyện của khách hàng của chúng tôi

  5. Làm cách nào để gỡ cài đặt MySQL khỏi Mac OS X?