Làm cách nào để chọn bản ghi mới nhất trong MySQL?

SEQUEL được biết đến rộng rãi với tên SQL (Ngôn ngữ truy vấn có cấu trúc), là ngôn ngữ tiêu chuẩn phổ biến nhất để làm việc trên cơ sở dữ liệu. Đây là ngôn ngữ dành riêng cho miền, chủ yếu được sử dụng để thực hiện rất nhiều thao tác bao gồm tạo cơ sở dữ liệu, lưu trữ dữ liệu dưới dạng bảng, sửa đổi, trích xuất, v.v. Có nhiều phiên bản SQL khác nhau như MYSQL, PostgreSQL, Oracle, SQL lite, v.v.  

SQL trở thành tiêu chuẩn của Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) vào năm 1986 và năm tiếp theo 1987, nó trở thành tiêu chuẩn của Tổ chức Tiêu chuẩn hóa Quốc tế (ISO). Ngày nay là thế giới của Internet và công nghệ. Chúng tôi được bao quanh bởi hàng tấn dữ liệu. Vì vậy, để lưu trữ dữ liệu này một cách an toàn và để quản lý chúng, chúng tôi cần một cơ sở dữ liệu phù hợp và để quản lý cơ sở dữ liệu này, chúng tôi cần một ngôn ngữ là SQL.  

Trong bài viết này, chúng ta sẽ xem xét cách lấy mục nhập cuối cùng của bất kỳ bản ghi nào trong Bảng. Chúng ta sẽ thảo luận về bốn cách khác nhau để trích xuất mục nhập cuối cùng của bất kỳ bảng nào trong cơ sở dữ liệu

đầu vào mẫu. Hãy xem xét một Bảng “Thông tin về Sinh viên” chứa dữ liệu về những sinh viên đã đăng ký vào “Khóa học GeeksforGeeks DSA“

        Student InformationIDAgeStudent NameSex122HarryMale223VishalMale320SnehalFemale425RamMale524HinaFemale

1. Tạo cơ sở dữ liệu

CREATE DATABASE database_name;

2. Tạo bảng

CREATE TABLE Table_name(
col_1 TYPE col_1_constraint,
col_2 TYPE col_2 constraint
.....
);

col: Column name
TYPE: Data type whether an integer, variable character, etc.
col_constraint: Constraints in SQL like PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES, etc.

3. Chèn vào bảng

INSERT INTO Table_name
VALUES(val_1, val_2, val_3, ..........);

val: Values in particular column.

4. xem bảng

SELECT * FROM Table_name

Phương pháp 1. Sử dụng truy cập MS

Chúng ta có thể sử dụng lệnh FIRST() để trích xuất mục nhập đầu tiên của một cột cụ thể và LAST() để trích xuất mục nhập cuối cùng của một cột cụ thể trong Bảng. Để biết thêm thông tin, hãy truy cập Hàm First() và Last() trong MS Access

Cú pháp cơ bản

LAST(expression)

Ví dụ: giả sử chúng tôi muốn trích xuất tên sinh viên cuối cùng từ bảng “Thông tin sinh viên”

SELECT LAST(Student_name) AS Stud_Name 
FROM StudentInformation;

đầu ra

Làm cách nào để chọn bản ghi mới nhất trong MySQL?

Tên học sinh cuối cùng

Như chúng ta có thể thấy, tên cuối cùng của sinh viên “Hina” được trích xuất bằng truy vấn trên. Nhưng cần lưu ý rằng SELECT LAST hoặc CUỐI CÙNG(biểu thức) chỉ được hỗ trợ trong MS Access. Câu lệnh này không hỗ trợ MYSQL, Oracle, PostgreSQL, v.v. Có nhiều cách khác như được thảo luận bên dưới để thực hiện thao tác trên trong các phiên bản SQL khác như MYSQL, Oracle, PostgreSQL, v.v.

Phương pháp 2. Bằng cách sắp xếp dữ liệu

Chúng ta có thể sử dụng câu lệnh và mệnh đề ORDER BY để trích xuất dữ liệu cuối cùng. Ý tưởng cơ bản là sắp xếp bảng sắp xếp theo thứ tự giảm dần và sau đó chúng tôi sẽ giới hạn số lượng hàng là 1. Bằng cách này, chúng ta sẽ nhận được đầu ra là hàng cuối cùng của bảng. Và sau đó chúng ta có thể chọn mục mà chúng ta muốn truy xuất

Cú pháp MYSQL

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
LIMIT 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

Cú pháp Oracle

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
WHERE ROWNUM <= 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

đầu ra

Làm cách nào để chọn bản ghi mới nhất trong MySQL?

Tên học sinh cuối cùng

Điều quan trọng cần lưu ý là để thực hiện sắp xếp, cột cần được chọn đúng. Ví dụ, nếu chúng ta chọn “ORDER BY Student_name DESC” thì nó sẽ sắp xếp bảng theo thứ tự abc trên cơ sở tên. Vì vậy, hàng chứa “Vishal” sẽ đứng đầu, nhưng hàng có “Vishal” làm mục nhập không phải là hàng cuối cùng của bảng. Ngoài ra, chúng tôi không thể sử dụng cột "Tuổi" để thực hiện ORDER BY như hình bên dưới

Làm cách nào để chọn bản ghi mới nhất trong MySQL?

Ram không phải là tên học sinh cuối cùng

Làm cách nào để chọn bản ghi mới nhất trong MySQL?

Vishal không phải là tên học sinh cuối cùng

Do đó, bắt buộc phải sử dụng ID cột hoặc bất kỳ cột nào là duy nhất và tăng dần theo từng bản ghi trong bảng

Phương pháp 3. Bằng cách sử dụng Subquery và AGGREGATE MAX()

Truy vấn con không là gì ngoài truy vấn bên trong truy vấn khác duy trì mối quan hệ cha-con. Truy vấn bên trong sẽ thực hiện trước, sau đó là truy vấn bên ngoài. Ở đây, trong phương pháp này, ý tưởng cơ bản là lấy ID tối đa bằng cách sử dụng hàm tổng hợp MAX và sau đó chọn tên sinh viên được liên kết với ID tối đa đó. Bằng cách này, chúng ta có thể trích xuất tên của học sinh cuối cùng từ bảng

________số 8_______

đầu ra

Làm cách nào để chọn bản ghi mới nhất trong MySQL?

Tên học sinh cuối cùng

Phương pháp 4. Bằng cách tiếp cận so sánh hoặc tương đối

Trong phương pháp này cũng vậy, chúng ta sẽ sử dụng một truy vấn con. Ý tưởng cơ bản là lọc ra các hàng và kiểm tra xem không có hàng nào như vậy tồn tại có giá trị ID cao hơn hàng mà chúng ta sẽ trích xuất. Điều này sẽ giúp nhận được hàng có ID tối đa và do đó chúng tôi có thể truy xuất thông tin cuối cùng. Đây là một truy vấn phức tạp và là một cách tiếp cận lặp đi lặp lại trong đó chúng ta sẽ sử dụng câu lệnh NOT EXISTS. Phương pháp này sẽ mất nhiều thời gian hơn để thực thi nếu có nhiều bản ghi hơn trong bảng

Làm cách nào để chọn bản ghi mới nhất trong SQL?

Trong SQL Server, chúng ta có thể dễ dàng chọn 10 bản ghi cuối cùng từ một bảng bằng cách sử dụng câu lệnh “SELECT TOP” . Mệnh đề TOP trong SQL Server được sử dụng để kiểm soát số lượng hoặc tỷ lệ phần trăm của các hàng từ kết quả. Và để chọn các bản ghi từ cuối cùng, chúng ta phải sắp xếp các hàng theo thứ tự giảm dần.

Làm cách nào để có được bản ghi mới nhất trong MySQL theo ngày giờ?

nếu bạn cần theo ngày giờ của cột khác thì bạn có thể sử dụng ->orderBy('columnName','desc/asc')->get() otherwise you can use latest() function.