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

Làm cách nào để chọn các giá trị khác nhau từ cùng một cột và hiển thị chúng trong các cột khác nhau với MySQL?

Để chọn các giá trị khác nhau trên cơ sở điều kiện, hãy sử dụng câu lệnh CASE. Đầu tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar (40), Score int); Truy vấn OK, 0 hàng bị ảnh hưởng (0,54 giây) 

Chèn một số bản ghi vào bảng bằng lệnh chèn -

 mysql> chèn vào giá trị DemoTable (Tên, Điểm) ('Chris', 45); Truy vấn OK, 1 hàng bị ảnh hưởng (0,24 giây) mysql> chèn vào giá trị DemoTable (Tên, Điểm) ('David', 68); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào các giá trị DemoTable (Tên, Điểm) ('Robert', 89); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào DemoTable (Tên, Điểm) giá trị ('Bob', 34); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable (Tên, Điểm) ('Sam', 66); Truy vấn OK, 1 hàng bị ảnh hưởng (0,22 giây)  

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

 mysql> select * từ DemoTable; 

Điều này sẽ tạo ra kết quả sau -

 + ---- + -------- + ------- + | Id | Tên | Điểm | + ---- + -------- + ------- + | 1 | Chris | 45 || 2 | David | 68 || 3 | Robert | 89 || 4 | Bob | 34 || 5 | Sam | 66 | + ---- + -------- + ------- + 5 hàng trong bộ (0,00 giây) 

Sau đây là truy vấn để chọn các giá trị khác nhau từ cùng một cột -

 mysql> chọn Điểm, trường hợp Điểm <40 thì Điểm kết thúc là 'Điểm dưới 40', trường hợp Điểm từ 60 đến 70 thì Điểm kết thúc là 'Điểm từ 60 đến 70', trường hợp Điểm> 80 thì Điểm kết thúc là 'Điểm lớn hơn 80' từ DemoTable; 

Điều này sẽ tạo ra kết quả sau -

 + ------- + -------------------- + ----------------- --------- + ----------------------- + | Điểm | Điểm dưới 40 | Điểm Từ 60 đến 70 | Điểm lớn hơn 80 | + ------- + -------------------- + --------------- ----------- + ----------------------- + | 45 | NULL | NULL | NULL || 68 | NULL | 68 | NULL || 89 | NULL | NULL | 89 || 34 | 34 | NULL | NULL || 66 | NULL | 66 | NULL | + ------- + -------------------- + ------------------ -------- + ----------------------- + 5 hàng được thiết lập, 1 cảnh báo (0,03 giây)