Computer >> Máy Tính >  >> Lập trình >> MySQL

MYSQL:Bạn có thể lấy kết quả phù hợp như 3 trong 4 biểu thức không?

Bạn có thể sử dụng câu lệnh CASE để nhận kết quả phù hợp với một số biểu thức−

 SELECT * FROM yourTableNameWHERE CASE WHEN yourColumnName1 =yourValue1 THEN 1 ELSE 0 END + CASE WHEN yourColumnName2 =yourValue2 THEN 1 ELSE 0 END + CASE WHEN yourColumnName3 =yourValue3 THEN 1 ELSE 0 END +. . TRƯỜNG HỢP KHI yourColumnNameN =yourValueN THÌ 1 LẦN 0 KẾT THÚC> =3; 

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

 mysql> tạo bảng UserInformation -> (-> Id int NOT NULL AUTO_INCREMENT, -> FirstName varchar (20), -> LastName varchar (20), -> Age int, -> Marks int, -> PRIMARY KEY ( Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,58 giây) 

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

 mysql> chèn vào giá trị UserInformation (FirstName, LastName, Age, Marks) ('John', 'Smith', 22,89); Truy vấn OK, 1 hàng bị ảnh hưởng (0,12 giây) mysql> chèn vào UserInformation (FirstName, Giá trị LastName, Age, Marks) ('Carol', 'Taylor', 21,80); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào giá trị UserInformation (FirstName, LastName, Age, Marks) ('John' , 'Doe', 24,81); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị UserInformation (FirstName, LastName, Age, Marks) ('David', 'Miller', 29,99); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào các giá trị Thông tin người dùng (Tên đầu tiên, Tên cuối cùng, Tuổi, Dấu hiệu) ('Mitchell', 'Johnson', 22,65); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây)  

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

 mysql> select * từ UserInformation; 

Sau đây là kết quả.

 + ---- + ----------- + ---------- + ------ + ------- + | Id | FirstName | LastName | Tuổi | Dấu | + ---- + ----------- + ---------- + ------ + ------- + | 1 | John | Smith | 22 | 89 || 2 | Carol | Taylor | 21 | 80 || 3 | John | Doe | 24 | 81 || 4 | David | Miller | 29 | 99 || 5 | Mitchell | Johnson | 22 | 65 | + ---- + ----------- + ---------- + ------ + ------- + 5 hàng trong bộ (0,00 giây) 

Đây là truy vấn để lấy ra bản ghi phù hợp với một số (không phải tất cả) biểu thức. Truy vấn như sau−

 mysql> select * from UserInformation -> trường hợp khi FirstName ='Mitchell' thì 1 else 0 end + -> trường hợp khi LastName ='Johnson' thì 1 else 0 end + -> trường hợp khi Age =22 thì 1 else 0 end + -> trường hợp khi Marks =67 thì 1 else 0 end> ​​=3; 

Sau đây là đầu ra−

 + ---- + ----------- + ---------- + ------ + ------- + | Id | FirstName | LastName | Tuổi | Dấu | + ---- + ----------- + ---------- + ------ + ------- + | 5 | Mitchell | Johnson | 22 | 65 | + ---- + ----------- + ---------- + ------ + ------- + 1 hàng trong tập hợp (0,00 giây)