Đặt hàng theo 2 điều kiện mysql

Tìm hiểu cách sử dụng Mệnh đề ORDER BY của MySQL với sự trợ giúp của các ví dụ lập trình trong hướng dẫn thực hành này

MySQL ORDER BY là một lệnh hoặc mệnh đề thường được sử dụng cùng với Truy vấn CHỌN, để SẮP XẾP tập kết quả trả về theo thứ tự tăng dần hoặc giảm dần

Lệnh này được triển khai rộng rãi và rất hữu ích vì nó có thể được sử dụng cùng với các tùy chọn khác như GIỚI HẠN và THAM GIA, v.v. để giảm hơn nữa tập kết quả và trả về kết quả cần thiết

Hơn nữa, có thể có nhiều mệnh đề ORDER BY được sử dụng trong cùng một bảng và các thứ tự sắp xếp khác nhau có thể được áp dụng cho từng mệnh đề đó.

=> Kiểm tra tất cả các hướng dẫn về MySQL tại đây

Bạn sẽ học được gì

  • ĐẶT HÀNG MySQL THEO Mệnh đề
    • Dữ liệu thử nghiệm
    • cú pháp
    • ĐẶT HÀNG MySQL THEO Ví dụ
      • #1] ĐẶT HÀNG BẰNG
      • #2] CÓ GIỚI HẠN
      • #3] Với THAM GIA
      • #4] ĐẶT HÀNG THEO Với Nhiều Cột
      • #5] ĐẶT HÀNG MySQL THEO RAND[]
  • Các câu hỏi thường gặp
  • Sự kết luận
    • đề xuất đọc

ĐẶT HÀNG MySQL THEO Mệnh đề

Dữ liệu thử nghiệm

-- table creation - employee_department
CREATE TABLE employee_department[dept_id SMALLINT[5] NOT NULL AUTO_INCREMENT PRIMARY KEY, dept_name VARCHAR[100]];

-- table creation - employees
CREATE TABLE employees [emp_id SMALLINT[5] NOT NULL AUTO_INCREMENT PRIMARY KEY, emp_name VARCHAR[150] DEFAULT NULL, 
dept_id SMALLINT, CONSTRAINT deptIdFk FOREIGN KEY[dept_id]
REFERENCES employee_department[dept_id] ON UPDATE CASCADE ON DELETE CASCADE];

-- data insertion employee_department
INSERT INTO employee_department[dept_name] VALUES ["HR"],["ENGINEERING"],["SALES"],["MARKETING"];

-- data insertion employees
INSERT INTO employees[emp_name, dept_id] VALUES
["Damian Kim",1],["Tara Vargas",2],["Marlon Jenning",4],["Leopold Schuman",2],["Bailey Sutton",3],["Toby Roffe",4],["Troy Duncan", 1],["Polly Berry",2],["Dorian Maillin", 2],["Thora Mason",3],["Taylor Morales",4],["Ida Carr",2],["Prateek Pal",2],["Janya Sood",4],["Tara Shetty",2],["Padma Krishna",1];

cú pháp

SELECT {column list} 
FROM {tableName}
ORDER BY
{column1 ASC|DESC},
{column2 ASC|DESC},
...

Hãy hiểu các phần khác nhau của cú pháp

  • {column-list}. Đề cập đến các cột bắt buộc trong tập hợp kết quả
  • {tên-bảng}. Là bảng đang được truy vấn
  • {cột1 ASC. DESC}. Tên cột mà tập kết quả cần được sắp xếp. ASC đề cập đến Sắp xếp TĂNG CƯỜNG và DESC đề cập đến Sắp xếp Giảm dần
  • Chúng ta có thể chỉ định nhiều cột cho mệnh đề ORDER BY và chỉ định các thứ tự sắp xếp khác nhau theo yêu cầu

Ghi chú

Theo mặc định, thứ tự sắp xếp cho MySQL ORDER BY là ASCENDING

MySQL ORDER BY sử dụng các chỉ mục cột hiện có nếu có cho các cột được đề cập trong mệnh đề ORDER BY

ĐẶT HÀNG MySQL THEO Ví dụ

#1] ĐẶT HÀNG BẰNG

SELECT * FROM employees ORDER BY emp_name;

Ở đây, bạn có thể thấy rằng chúng tôi đang sắp xếp theo emp_name. Ngoài ra, vì chúng tôi chưa chỉ định bất kỳ thứ tự sắp xếp nào, thứ tự sắp xếp mặc định do công cụ MySQL đảm nhận là thứ tự TĂNG CƯỜNG. Chúng ta có thể nhận thấy trong tập kết quả rằng các bản ghi được sắp xếp theo thứ tự tăng dần của tên nhân viên

Hãy thử chạy cái này cho thứ tự DESCENDING

SELECT * FROM employees ORDER BY emp_name DESC;

Chúng ta có thể sử dụng cùng một truy vấn và chỉ đề cập đến thứ tự sắp xếp là DESC

Đây là kết quả với tên nhân viên được sắp xếp theo thứ tự giảm dần

#2] CÓ GIỚI HẠN

Bây giờ hãy xem cách chúng ta có thể sử dụng mệnh đề ORDER BY với tùy chọn LIMIT để giới hạn số lượng kết quả tìm kiếm được trả về

Chúng tôi sẽ sử dụng cùng một truy vấn để sắp xếp theo tên nhân viên tăng dần và tìm nạp 5 bản ghi đầu tiên

SELECT * FROM employees ORDER BY emp_name LIMIT 5;

Trong trường hợp này, Công cụ MySQL sẽ sắp xếp bảng theo thứ tự sắp xếp và trả về 5 bản ghi đầu tiên như được đề cập trong mệnh đề LIMIT

#3] Với THAM GIA

Hãy xem một ví dụ về cách sử dụng ORDER BY cùng với THAM GIA

SELECT emp.emp_name, emp_dept.dept_name FROM employees emp
INNER JOIN employee_department emp_dept
ON emp.dept_id = emp_dept.dept_id
ORDER BY emp.emp_name ASC

#4] ĐẶT HÀNG THEO Với Nhiều Cột

Hãy xem một ví dụ về việc sử dụng nhiều cột với mệnh đề ORDER BY và xem cách sắp xếp được áp dụng

Chúng tôi sẽ sử dụng truy vấn trước đó với cột bổ sung dept_name được sắp xếp theo thứ tự ASCENDING và tên trong mỗi bộ phận được sắp xếp theo thứ tự DESCENDING

SELECT .emp_name, emp_dept.dept_name FROM employees emp
INNER JOIN employee_department emp_dept
ON emp.dept_id = emp_dept.dept_id
ORDER BY empemp_dept.dept_name ASC, emp.emp_name DESC

Trong đầu ra ở trên, bạn có thể thấy rằng các hàng được sắp xếp theo thứ tự TĂNG CƯỜNG của tên bộ phận. Tên nhân viên trong các phòng ban được sắp xếp theo thứ tự GIẢM

Ví dụ. Tham khảo bộ phận nhân sự – các tên xuất hiện theo thứ tự TROY, PADMA và DAMIAN – đó là thứ tự CHỮA GIẢM MỨC cho cột emp_names

#5] ĐẶT HÀNG MySQL THEO RAND[]

MySQL ORDER BY có thể được sử dụng với tùy chọn RAND[] để lấy các bản ghi ngẫu nhiên từ bảng

Tùy chọn này không yêu cầu tên cột sau mệnh đề ORDER BY và thường được sử dụng cùng với câu lệnh LIMIT để trả về số hàng đã cho

Ví dụ. Giả sử bạn muốn tìm nạp 2 bản ghi ngẫu nhiên từ bảng nhân viên, thì bạn có thể thực hiện truy vấn bên dưới.

SELECT * FROM employees ORDER BY RAND[] LIMIT 2

Mỗi khi bạn chạy truy vấn trên, bạn sẽ nhận được các kết quả ngẫu nhiên khác nhau

Ví dụ: chạy truy vấn 2 lần, trả về tập kết quả như bên dưới.

Các ứng dụng điển hình của việc sử dụng ORDER BY RAND[] có thể là

  • Tìm nạp các bản ghi ngẫu nhiên để hiểu lược đồ cột và loại dữ liệu mà bảng chứa
  • Các ứng dụng cụ thể như rút thăm may mắn từ một bảng có 1 triệu bản ghi – tìm nạp 3 hàng ngẫu nhiên

Các câu hỏi thường gặp

Q #1] Làm cách nào để sắp xếp trong MySQL?

Câu trả lời. MySQL cung cấp chức năng sắp xếp bằng mệnh đề ORDER BY. Thứ tự sắp xếp mặc định là Tăng dần [hoặc chúng ta có thể đề cập rõ ràng ASC cho tăng dần để làm cho các truy vấn có thể đọc được] và để sắp xếp Giảm dần, có thể sử dụng từ khóa DESC

Hãy xem các truy vấn đơn giản để sắp xếp dữ liệu

Chúng ta có thể sử dụng truy vấn bên dưới để tìm nạp 10 bản ghi đầu tiên được sắp xếp theo thứ tự giảm dần theo độ tuổi từ một bảng có tên nhân viên có một cột có tên emp_age

________số 8

Q #2] ORDER BY làm gì trong MySQL?

Câu trả lời. ORDER BY là một mệnh đề thường được sử dụng cùng với các truy vấn SELECT trong MySQL và được sử dụng để trả về tập kết quả được sắp xếp theo thứ tự nhất định đối với cột hoặc trường đã cho trong bảng

Mệnh đề ORDER BY có thể được sử dụng cùng với các tùy chọn khác nhau như

  • Với mệnh đề GIỚI HẠN
  • Với các bảng đã tham gia
  • Với GROUP BY, v.v.

Q #3] Việc sử dụng MySQL ORDER BY RAND[] là gì?

Câu trả lời. ORDER BY RAND[] là một mệnh đề đặc biệt có thể được sử dụng để trả về các bản ghi ngẫu nhiên từ một bảng nhất định. Nó thường được sử dụng cùng với mệnh đề LIMIT để chỉ định số lượng hàng cần được trả về

Một truy vấn mẫu dưới đây

SELECT * FROM employees ORDER BY RAND[] LIMIT 4

Truy vấn trên sẽ trả về 4 bản ghi ngẫu nhiên từ bảng của nhân viên

Sự kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về mệnh đề ORDER BY của MySQL và các tùy chọn khác nhau mà mệnh đề này có thể được sử dụng

Chúng ta cũng đã thảo luận về MySQL ORDER BY RAND[] thường được sử dụng để trả về các bản ghi ngẫu nhiên từ một bảng nhất định so với số lượng bản ghi được chỉ định bởi điều kiện LIMIT

Mệnh đề ORDER BY là một tùy chọn được sử dụng rộng rãi trong các truy vấn phức tạp và ứng dụng web để truy xuất và hiển thị dữ liệu theo thứ tự mong muốn

Tôi có thể sử dụng 2 ORDER BY trong mysql không?

Nếu bạn muốn chọn các bản ghi từ một bảng nhưng muốn xem chúng được sắp xếp theo hai cột, bạn có thể làm như vậy với ORDER BY . This clause comes at the end of your SQL query. After the ORDER BY keyword, add the name of the column by which you'd like to sort records first [in our example, salary].

ORDER BY 2 trong SQL là gì?

Sắp xếp theo vị trí thứ tự của các cột . CHỌN first_name, last_name TỪ doanh số bán hàng. khách ĐẶT HÀNG THEO 1, 2; . the last_name column.

Chúng ta có thể đặt điều kiện trong ORDER BY SQL không?

Chúng ta có thể xác định một chuỗi các cột trong danh sách cột câu lệnh chọn. Chúng tôi có thể cần sắp xếp tập kết quả dựa trên một giá trị cột cụ thể, điều kiện, v.v. Chúng ta có thể sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần bằng mệnh đề ORDER BY trong câu lệnh Select .

Mệnh đề ORDER BY hoạt động như thế nào nếu hai giá trị bằng nhau?

Nếu các giá trị giống nhau trong cột được sử dụng theo thứ tự trước, kết quả sẽ là ngẫu nhiên . Bạn có thể thấy cùng một thứ tự kết quả sau vài lần chạy và sau đó nó sẽ đột ngột thay đổi.

Chủ Đề