Nhập bàn làm việc của MySQL bỏ qua các bản sao
Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh MySQL 2 để chèn dữ liệu vào bảng Giới thiệu về câu lệnh MySQL CREATE TABLE subscribers ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(50) NOT NULL UNIQUE ); Code language: SQL (Structured Query Language) (sql)2Khi bạn sử dụng câu lệnh 4 để thêm nhiều hàng vào một bảng và nếu xảy ra lỗi trong quá trình xử lý, MySQL sẽ chấm dứt câu lệnh và trả về một lỗi. Kết quả là không có hàng nào được chèn vào bảng Tuy nhiên, nếu bạn sử dụng câu lệnh 2, các hàng có dữ liệu không hợp lệ gây ra lỗi sẽ bị bỏ qua và các hàng có dữ liệu hợp lệ sẽ được chèn vào bảng Cú pháp của câu lệnh 2 như sau
Lưu ý rằng mệnh đề 7 là phần mở rộng của MySQL theo tiêu chuẩn SQL Ví dụ về MySQL CREATE TABLE subscribers ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(50) NOT NULL UNIQUE ); Code language: SQL (Structured Query Language) (sql)2Chúng ta sẽ tạo một bảng mới có tên là 9 để trình diễn
Ràng buộc 00 đảm bảo rằng không có email trùng lặp nào tồn tại trong cột 01 Câu lệnh sau đây chèn một hàng mới vào bảng 9 0 Nó hoạt động như mong đợi Hãy thực hiện một câu lệnh khác để chèn hai hàng vào bảng 9 5 Nó trả về một lỗi 6 Như đã chỉ ra trong thông báo lỗi, email 04 vi phạm ràng buộc 00 Tuy nhiên, nếu bạn sử dụng câu lệnh 2 để thay thế 0 MySQL trả về một thông báo cho biết rằng một hàng đã được chèn và hàng kia đã bị bỏ qua 1 Để tìm chi tiết cảnh báo, bạn có thể sử dụng lệnh 07 như hình bên dưới 3 Tóm lại, khi bạn sử dụng câu lệnh 2, thay vì đưa ra lỗi, MySQL đưa ra cảnh báo trong trường hợp xảy ra lỗi Nếu bạn truy vấn dữ liệu từ bảng 9, bạn sẽ thấy rằng chỉ có một hàng thực sự được chèn vào và hàng gây ra lỗi thì không Chế độ CREATE TABLE subscribers ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(50) NOT NULL UNIQUE ); Code language: SQL (Structured Query Language) (sql)2 và CREATE TABLE subscribers ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(50) NOT NULL UNIQUE ); Code language: SQL (Structured Query Language) (sql)51 của MySQLKhi chế độ nghiêm ngặt được bật, MySQL sẽ trả về lỗi và hủy bỏ câu lệnh 4 nếu bạn cố gắng chèn các giá trị không hợp lệ vào một bảng Tuy nhiên, nếu bạn sử dụng câu lệnh 2, MySQL sẽ đưa ra cảnh báo thay vì lỗi. Ngoài ra, nó sẽ cố gắng điều chỉnh các giá trị để làm cho chúng hợp lệ trước khi thêm giá trị vào bảng Xem xét ví dụ sau Đầu tiên, chúng ta tạo một bảng mới có tên là 54 1 Trong bảng này, cột 55 chỉ chấp nhận chuỗi có độ dài nhỏ hơn hoặc bằng sáu Thứ hai, chèn một chuỗi có độ dài là bảy vào bảng 54 4 MySQL đã đưa ra lỗi sau vì chế độ nghiêm ngặt được bật 0 Thứ ba, sử dụng câu lệnh 2 để chèn cùng một chuỗi 1 MySQL đã cắt bớt dữ liệu trước khi chèn nó vào bảng 54. Ngoài ra, nó đưa ra một cảnh báo Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL 2 để chèn các hàng vào một bảng và bỏ qua lỗi đối với các hàng gây ra lỗi Làm cách nào để bỏ qua mục nhập trùng lặp trong MySQL?Sử dụng lệnh INSERT IGNORE thay vì lệnh INSERT . Nếu một bản ghi không trùng lặp với một bản ghi hiện có, thì MySQL sẽ chèn nó như bình thường. Nếu bản ghi trùng lặp, thì từ khóa IGNORE yêu cầu MySQL loại bỏ nó một cách âm thầm mà không tạo ra lỗi.
Làm cách nào để tránh các bản ghi trùng lặp trong truy vấn CHỌN của MySQL?Giải pháp để loại bỏ các hàng trùng lặp khỏi tập hợp kết quả của bạn là bao gồm từ khóa riêng biệt trong câu lệnh chọn của bạn . Nó yêu cầu công cụ truy vấn loại bỏ các bản sao để tạo ra một tập kết quả trong đó mỗi hàng là duy nhất.
Làm cách nào để ngăn các bản ghi trùng lặp trong MySQL bằng PHP?bạn cũng có thể sử dụng mysql_fetch_row() thay vì mysql_num_rows() . Nếu giá trị có trong bảng, nó không thể được lưu trữ trong bảng. Bây giờ bạn có thể tránh các mục trùng lặp trong bảng bằng PHP và Mysql.
Làm cách nào bạn có thể lọc dữ liệu trùng lặp trong khi truy xuất bản ghi từ bảng?Sau khi đã nhóm dữ liệu, bạn có thể lọc ra các dữ liệu trùng lặp bằng cách sử dụng mệnh đề có . Mệnh đề có là đối tác của mệnh đề where cho các truy vấn tổng hợp. Chỉ cần nhớ cung cấp một tên tạm thời cho dữ liệu đếm() để sử dụng chúng trong mệnh đề có. |