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

Sắp xếp theo thứ tự các giá trị trong mệnh đề IN câu lệnh chọn MySQL?

Bạn có thể sử dụng hàm field () với mệnh đề ORDER BY để sắp xếp theo thứ tự các giá trị. Cú pháp như sau

 CHỌN * TỪ yourTableNameWHERE yourColumnName IN (Value1, Value2, Value3, ....... N); ĐẶT HÀNG THEO LĨNH VỰC (yourColumnName, Value1, Value2, Value3, ....... N);  

Để 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 SelectInDemo -> (-> StudentId int, -> StudentName varchar (100), -> StudentAge int ->); Truy vấn OK, 0 hàng bị ảnh hưởng (1,04 giây) 

Chèn bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau

 mysql> chèn vào giá trị SelectInDemo (1, 'Mike', 23); Truy vấn OK, 1 hàng bị ảnh hưởng (0,21 giây) mysql> chèn vào giá trị SelectInDemo (10, 'Bob', 21); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị SelectInDemo (11, 'Carol', 30); Truy vấn OK, 1 hàng bị ảnh hưởng (0,25 giây) mysql> chèn vào giá trị SelectInDemo (15, 'Sam', 24); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị SelectInDemo (20, 'John', 26); Truy vấn OK, 1 hàng bị ảnh hưởng (0,09 giây) mysql> chèn vào giá trị SelectInDemo (101, 'David', 27); Truy vấn OK, 1 hàng bị ảnh hưởng (0,25 giây) mysql> chèn vào giá trị SelectInDemo (96, 'Justin', 23); Truy vấn OK, 1 hàng bị ảnh hưởng (0,27 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ừ SelectInDemo; 

Sau đây là kết quả

 + ----------- + ------------- + ------------ + | StudentId | StudentName | StudentAge | + ----------- + ------------- + ------------ + | 1 | Mike | 23 || 10 | Bob | 21 || 11 | Carol | 30 || 15 | Sam | 24 || 20 | John | 26 || 101 | David | 27 || 96 | Justin | 23 | + ----------- + ------------- + ------------ + 7 hàng trong bộ (0,00 giây) 

Đây là truy vấn để sử dụng IN với câu lệnh SELECT trong MySQL

 mysql> select * from SelectInDemo -> where StudentId IN (1,96,101,10,15,11,20) -> order by field (StudentId, 1,96,101,10,15,11,20);  

Sau đây là kết quả

 + ----------- + ------------- + ------------ + | StudentId | StudentName | StudentAge | + ----------- + ------------- + ------------ + | 1 | Mike | 23 || 96 | Justin | 23 || 101 | David | 27 || 10 | Bob | 21 || 15 | Sam | 24 || 11 | Carol | 30 || 20 | John | 26 | + ----------- + ------------- + ------------ + 7 hàng trong bộ (0,00 giây) 

Hãy để chúng tôi xem để đặt hàng khác.

Truy vấn như sau cho đơn hàng thứ hai.

 mysql> select * from SelectInDemo -> where StudentId IN (1,10,11,15,20,101,96) -> order by field (StudentId, 1,10,11,15,20,101,96);  

Sau đây là outpu

 + ----------- + ------------- + ------------ + | StudentId | StudentName | StudentAge | + ----------- + ------------- + ------------ + | 1 | Mike | 23 || 10 | Bob | 21 || 11 | Carol | 30 || 15 | Sam | 24 || 20 | John | 26 || 101 | David | 27 || 96 | Justin | 23 | + ----------- + ------------- + ------------ + 7 hàng trong bộ (0,00 giây)