Các biểu thức CASE của MySQL được giải thích bằng các ví dụ thực tế – mysql nhiều trường hợp khi

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức MySQL CASE để thêm logic if-else vào SELECT, WHERE và ORDER BY của một truy vấn.

Bạn đang xem : mysql đa trường hợp khi

Tóm tắt : trong này hướng dẫn, bạn sẽ học cách sử dụng biểu thức MySQL CASE để thêm logic if-else vào các truy vấn.

Giới thiệu về biểu thức MySQL CASE

Biểu thức CASE trong MySQL là một cấu trúc luồng điều khiển cho phép bạn thêm logic if-else vào một truy vấn. Nói chung, bạn có thể sử dụng biểu thức CASE ở bất kỳ đâu cho phép biểu thức hợp lệ, ví dụ: SELECT , WHERE ORDER BY .

Biểu thức CASE có hai dạng: đơn giản CASE và tìm kiếm CASE .

Lưu ý rằng MySQL có câu lệnh CASE mà bạn chỉ có thể sử dụng trong các chương trình đã lưu trữ, chẳng hạn như các thủ tục được lưu trữ, các hàm được lưu trữ, các sự kiện và trình kích hoạt, không phải là biểu thức CASE được đề cập trong hướng dẫn này.

Đơn giản CASE biểu thức

Phần sau minh họa cú pháp của biểu thức CASE đơn giản:

 

Giá trị CASE WHEN value1 THEN result1 WHEN value2 THEN result2 … [ELSE else_result]

HẾT

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Trong cú pháp này, CASE khớp giá trị với value1 , value2 , v.v., cho bằng nhau và trả về result1 , result2 ,… tương ứng nếu giá trị không bằng bất kỳ value1 nào , < code> value2 ,… CASE trả về kết quả trong mệnh đề ELSE nếu mệnh đề ELSE được chỉ định.

< p> CASE so sánh giá trị với các giá trị trong mệnh đề WHEN cho bằng nhau, bạn không thể sử dụng nó với < code> NULL bởi vì NULL = NULL trả về false.

Biểu thức CASE đã tìm kiếm

Sau đây là cú pháp của một cuộc tìm kiếm d CASE biểu thức:

 

CASE WHEN biểu thức1 THEN kết quả1 WHEN biểu thức2 THEN kết quả2 … [ELSE else_result]

HẾT

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Trong cú pháp này, CASE đánh giá các biểu thức được chỉ định trong mệnh đề WHEN . Nếu một biểu thức đánh giá là true. CASE trả về kết quả tương ứng trong mệnh đề THEN . Nếu không, nó trả về kết quả được chỉ định trong mệnh đề ELSE . Trong trường hợp mệnh đề ELSE không có sẵn, thì biểu thức CASE trả về NULL .

CASE < / code> biểu thức trả về kết quả có kiểu dữ liệu phụ thuộc vào ngữ cảnh nơi nó được sử dụng. Ví dụ: nếu biểu thức CASE được sử dụng trong ngữ cảnh chuỗi ký tự, nó sẽ trả về kết quả là một chuỗi ký tự. Nếu biểu thức CASE được sử dụng trong ngữ cảnh số, nó sẽ trả về kết quả dưới dạng số nguyên, số thập phân hoặc giá trị thực.

MySQL CASE ví dụ về biểu thức

A) Sử dụng biểu thức CASE trong ví dụ về mệnh đề SELECT

Xem các đơn đặt hàng và bảng khách hàng :

Câu lệnh sau trả về khách hàng và đơn đặt hàng của họ:

 

CHỌN

tên khách hàng,

COUNT

(*) orderCount

TỪ

đơn đặt hàng

INNER

THAM GIA

khách hàng

SỬ DỤNG

(customerNumber)

GROUP

BY

customerName

ĐƠN HÀNG

THEO

ĐẾM

(*); < / code>

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Ví dụ về biểu thức CASE đơn giản trong MySQL

Ví dụ này sử dụng mã CASE biểu thức trong mệnh đề SELECT để trả về loại khách hàng dựa trên số lượng đơn hàng mà khách hàng đã đặt:

 

VỚI

cte

AS

(

CHỌN

tên khách hàng,

COUNT

(*) orderCount

TỪ

đơn đặt hàng

INNER

THAM GIA

khách hàng

SỬ DỤNG

(customerNumber)

GROUP

BY

customerName )

CHỌN

tên khách hàng, orderCount,

CASE

orderCount

KHI NÀO

1

THÌ

'Khách hàng một lần'

KHI NÀO

2

THÌ

'Khách hàng lặp lại'

KHI NÀO

3

THÌ

'Khách hàng Thường xuyên'

ELSE

'Khách hàng Trung thành'

end

customerType

TỪ

cte

ĐẶT HÀNG

THEO

customerName;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

 Biểu thức MySQL CASE với mệnh đề SELECT

B ) Sử dụng biểu thức CASE trong ví dụ mệnh đề ORDER BY

Ví dụ sau sử dụng biểu thức CASE để sắp xếp khách hàng theo trạng thái nếu trạng thái không phải là NULL hoặc sắp xếp quốc gia trong trường hợp trạng thái là NULL :

 

CHỌN

tên khách hàng, tiểu bang, quốc gia

TỪ

khách hàng

ĐẶT HÀNG

THEO

(

TRƯỜNG HỢP

KHI NÀO

bang

KHÔNG ĐẦY ĐỦ

THÌ

quốc gia

ELSE

trạng thái

HẾT

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Dùng thử

 MySQL Biểu thức CASE với mệnh đề ORDER BY

C) Sử dụng biểu thức CASE với ví dụ về hàm tổng hợp

Ví dụ sau sử dụng < code> CASE biểu thức với hàm SUM () để tính tổng số đơn hàng bán theo trạng thái đơn hàng:

 

CHỌN

SUM

(

TRƯỜNG HỢP

KHI NÀO

trạng thái

=

'Đã giao hàng'

THÌ

1

ELSE

0

HẾT

)

AS

'Đã giao hàng'

,

SUM

(

TRƯỜNG HỢP

KHI NÀO

trạng thái

=

'Tạm dừng'

< p class = "hljs-keyword"> THÌ

1

ELSE

0

HẾT

)

AS

'Tạm dừng'

,

SUM

(

TRƯỜNG HỢP

KHI NÀO

status

=

'Đang xử lý'

THÌ

< p class = "hljs-number"> 1

ELSE

0

HẾT

)

AS

'Đang xử lý'

,

SUM

(

TRƯỜNG HỢP

KHI NÀO

trạng thái

=

'Đã giải quyết'

THÌ

1

ELSE

0

HẾT

)

AS

'Đã giải quyết'

,

SUM

(

TRƯỜNG HỢP

KHI NÀO

trạng thái

=

'Đã hủy'

THÌ

1

ELSE

0

HẾT

)

AS

'Đã hủy'

,

SUM

(

TRƯỜNG HỢP

KHI NÀO

trạng thái

=

'Tranh chấp'

THÌ

1

ELSE

0

HẾT

)

AS

'Tranh chấp'

,

COUNT

(*)

AS

Tổng cộng

TỪ

order;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Dùng thử

Đây là kết quả đầu ra:

Biểu thức MySQL CASE với ví dụ về hàm tổng hợp

Cách hoạt động.

  • Đầu tiên, câu lệnh CASE trả về 1 nếu trạng thái bằng các trạng thái tương ứng như Đã giao hàng, đang chờ, Đang xử lý, Đã hủy, Tranh chấp và bằng không.
  • Thứ hai, hàm SUM () trả về tổng số đơn đặt hàng cho mỗi trạng thái đơn đặt hàng.

Trong hướng dẫn này, bạn đã học cách sử dụng biểu thức MySQL CASE cho một dd if-else logic cho các truy vấn.

Hướng dẫn này có hữu ích không?


Xem thêm những thông tin liên quan đến chủ đề mysql nhiều trường hợp khi

How Add a Foreign Key Constraint (Make Relationships) in MySQL WorkBench

alt

  • Tác giả: Matt Macarty
  • Ngày đăng: 2022-03-13
  • Đánh giá: 4 ⭐ ( 6096 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: @Matt Macarty
    mysql workbench foreignkey

    ✅ Please SUBSCRIBE:
    https://www.youtube.com/subscription_center?add_user=mjmacarty

    Add and work with foreign key constraints in MySQL

    ✅ Pure SQL Tutorial starts 7:18

    ✅ How to Create Databases:
    https://youtu.be/OnXB3ZRrOW0

    ✅ How to Create EER Diagrams:
    https://youtu.be/tEhGIYN4vic

    ✅ Link to GitHub:
    https://github.com/mjmacarty/mysql

    In this video I am going to demonstrate add a foreign key contraint in MySQL and create relationships using the workbench. See the link to download the two tables used from GitHub so you can follow along. The tables customers and orders, so we can imagine the relationships there where one customer places many orders (hopefully).

    We start off by examining and ERD of the unrelated tables. We can use the EER diagram to manually add the one-to-many relationship button here and draw the relationship in between the tables, however for this to take effect you would need to forward engineer the diagram into a new database.

    There are a number of different ways we add foreign key constraints, and the video covers the methods to do this in the workbench. First I'm going to use the GUI method, and then we will see how to do the same thing with pure SQL. The requirements are the same regardless of which method you use: you need to relate a primary key from one table to a column in a second table of the same data type and size. A couple of things to keep in mind, 1. when you import data MySQL tends to make it as generic as possible. For example any string data will be imported as text datatype; 2. MySQL does not allow text data to be defined as a primary key. MySQL allows CHAR data and INT data to be defined as primary keys. For speed, INT data is preferred, but we will be using CHAR data in this video.

    Some people prefer the GUI interaction since you can simply point click and drag. In reality, though the Workbench generates all the required SQL, which you have "apply". To me it's not easier to use the GUI interface, and I prefer the PURE SQL method. In addition, since we are dealing with SQL there's always or usually more than one way of doing things. I am going to ALTER the tables using the MODIFY keyword on the columns of interest to add both primary and foreign keys.

Tăng tốc độ truy vấn trong mysql

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 5159 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 1. Các nguyên nhân làm chậm truy vấn

Sử dụng Index trong MySQL: Phần 1- Các loại index và cách đánh index

  • Tác giả: itnavi.com.vn
  • Đánh giá: 3 ⭐ ( 9219 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một trong những vấn đề mà mình nghĩ là tốn nhiều thời gian, công sức của lập trình viên đó là việc nâng cao performance cho hệ thống.Sẽ không có vấn đề gì nếu hệ thống chỉ có số users và lượng data không quá lớn, nhưng nếu ngược lại việc tối ưu hoá các query với database sẽ là then chốt để optimize performance cho hệ thống.Trong bài viết này mình sẽ giới thiệu về việc đánh index cho các table qua đó tăng performance cho các câu lệnh query.

Tránh nhiều trường hợp khi - MySQL

  • Tác giả: vi.fallingwatersweb.com
  • Đánh giá: 3 ⭐ ( 2509 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi có một truy vấn: Chọn , chức năng của tôi (param1, ) Bảng FROM Cả trường hợp Khi các cá thể là cùng một tập hợp các điều kiện. Vì vậy, ở đây tôi đang lặp lại rõ ràng cùng một điều ...

mysql quá nhiều chỉ mục?

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 2843 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Điều gì sẽ tăng tốc các chỉ mục? Truy xuất dữ liệu - Các câu lệnh…

MySQL là gì? Tìm hiểu những thông tin cần biết về MySQL

  • Tác giả: mona.media
  • Đánh giá: 5 ⭐ ( 3826 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: MySQL chính là hệ quản trị cơ sở dữ liệu mã nguồn mở hiện nay được sử dụng phổ biến trên phạm vi toàn cầu. Hệ quản trị cơ sở dữ liệu này hoạt động dựa trên mô hình tiêu chuẩn là Client (Máy khách) – Server (Máy chủ).

Học SQL cho Data Anslyst – Sức mạnh của lệnh With và MySQL CTE

  • Tác giả: data-fun.com
  • Đánh giá: 5 ⭐ ( 6032 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  JavaScript addEventListener () - js thêm trình nghe sự kiện