Tiếp theo → ← Prev
Toán tử tồn tại trong MySQL là một loại toán tử Boolean trả về kết quả đúng hoặc sai. Nó được sử dụng kết hợp với một truy vấn con và kiểm tra sự tồn tại của dữ liệu trong một trình truy vấn con. Điều đó có nghĩa là nếu một truy vấn con trả về bất kỳ bản ghi nào, toán tử này sẽ trả về đúng. Nếu không, nó sẽ trả về sai. Giá trị thực luôn được biểu thị giá trị số 1 và giá trị sai đại diện cho 0. Chúng ta có thể sử dụng nó với câu lệnh CHỌN, CẬP NHẬT, XÓA, CHUYỂN ĐỔI.true or false result. It is used in combination with a subquery and checks the existence of data in a subquery. It means if a subquery returns any record, this operator returns true. Otherwise, it will return false. The true value is always represented numeric value 1, and the false value represents 0. We can use it with SELECT, UPDATE, DELETE, INSERT statement.
Cú pháp
Sau đây là cú pháp để sử dụng toán tử tồn tại trong MySQL:
Toán tử không được sử dụng để phủ nhận toán tử tồn tại. Nó trả về true khi trình điều khiển con không trả lại bất kỳ hàng nào. Nếu không, nó trả về sai.
Nói chung, truy vấn tồn tại bắt đầu với Chọn *, nhưng nó có thể bắt đầu với cột Chọn, chọn A_Constant hoặc bất cứ thứ gì trong trình điều khiển con. Nó sẽ cung cấp cùng một đầu ra vì MySQL bỏ qua danh sách chọn trong truy vấn con.
Nhà điều hành này chấm dứt ngay lập tức để xử lý thêm sau khi kết quả phù hợp được tìm thấy. Tính năng này cải thiện hiệu suất của truy vấn trong MySQL.
Giải thích tham số
Sau đây là các tham số được sử dụng trong toán tử tồn tại:
col_names | Nó là tên của [các] cột chứa trong bảng được chỉ định. |
tab_name | Đó là tên của bảng mà chúng ta sẽ thực hiện toán tử tồn tại. |
tình trạng | Nó chỉ định để tìm kiếm giá trị cụ thể từ bảng. |
Subquery | Nó thường là câu lệnh select bắt đầu bằng Chọn *, nhưng MySQL bỏ qua nó trong một trình truy xuất con. |
MySQL tồn tại ví dụ toán tử
Hãy cho chúng tôi hiểu cách các nhà điều hành tồn tại hoạt động trong MySQL. Ở đây, trước tiên chúng tôi sẽ tạo hai bảng có tên "Khách hàng" và "Đơn đặt hàng" bằng cách sử dụng câu lệnh sau:"customer" and "orders" using the following statement:
Tiếp theo, chúng ta cần chèn các giá trị vào cả hai bảng. Thực hiện các câu lệnh dưới đây:
Để xác minh các bảng, hãy chạy lệnh Chọn như dưới đây:
Chúng tôi sẽ nhận được đầu ra dưới đây:
Mysql chọn ví dụ tồn tại
Trong ví dụ này, chúng tôi sẽ sử dụng nhà điều hành tồn tại để tìm tên và nghề nghiệp của khách hàng đã đặt ít nhất một đơn đặt hàng:
Đầu ra sau xuất hiện:
Một lần nữa, nếu chúng tôi muốn lấy tên của khách hàng chưa đặt hàng, thì hãy sử dụng toán tử không tồn tại:
Nó sẽ cung cấp cho đầu ra dưới đây:
MySQL tồn tại với ví dụ về câu lệnh Xóa
Giả sử chúng tôi muốn xóa một bản ghi từ bảng đơn hàng có order_id = 3, thực hiện truy vấn sau để xóa bản ghi khỏi bảng đơn hàng vĩnh viễn:
Để xác minh đầu ra, hãy chạy lệnh bên dưới:
Trong đầu ra, chúng ta có thể thấy rằng bản ghi bảng có order_id = 3 bị xóa thành công.
Nếu chúng ta muốn kiểm tra xem một hàng có tồn tại trong bảng hay không, hãy sử dụng truy vấn sau:
Chúng tôi sẽ nhận được đầu ra 1 có nghĩa là đúng. Do đó, Cust_id = 104 tồn tại trong bảng.
Sự khác biệt giữa tồn tại và trong nhà điều hành
Sự khác biệt chính giữa tồn tại và trong toán tử được đưa ra ở dạng bảng:
1. | Nó được sử dụng để giảm thiểu nhiều điều kiện hoặc điều kiện trong MySQL. | Nó được sử dụng để kiểm tra sự tồn tại của dữ liệu trong một truy vấn con. |
2. | Chọn col_names từ tab_name trong đó col_name trong [phụ]; | SELECT col_names FROM tab_name WHERE [NOT] EXISTS [subquery]; |
3. | Nó so sánh tất cả các giá trị bên trong toán tử trong. | Nó dừng lại để thực hiện thêm ngay khi tìm thấy sự xuất hiện thực sự đầu tiên. |
4. | Nó có thể sử dụng để so sánh các giá trị null. | Nó không thể sử dụng để so sánh các giá trị null. |
5. | Nó thực hiện nhanh hơn khi kết quả phụ là ít hơn. | Nó thực hiện nhanh hơn khi kết quả phụ là lớn. |
6. | Nó thực hiện so sánh giữa truy vấn cha mẹ và truy vấn con hoặc truy vấn con. | Nó không thực hiện so sánh giữa truy vấn cha mẹ và truy vấn con hoặc truy vấn con. |
Chủ đề tiếp theomysql không điều kiệnMySQL NOT Condition
← Tiếp theo →
Khi nào nên sử dụng hoặc tồn tại?
Điều khoản của In trong mệnh đề được ưu tiên khi có một danh sách nhỏ các giá trị tĩnh hoặc truy vấn bên trong trả về một số lượng rất ít hơn. Điều khoản tồn tại của người Viking được ưu tiên khi cần phải kiểm tra sự tồn tại của các giá trị trong một bảng khác hoặc khi cần phải kiểm tra nhiều hơn một cột.
Không tồn tại trong MySQL?
Trong MySQL 8.0. 19 và sau đó, bạn cũng có thể sử dụng không tồn tại hoặc không tồn tại với bảng trong truy vấn con, như thế này: chọn cột1 từ T1 nơi tồn tại [Bảng T2]; Các kết quả giống như khi sử dụng Select * không có mệnh đề WHERE trong SBURERY.
Chúng ta có thể sử dụng tồn tại trong các câu lệnh chọn lọc không?
FROM table_name
WHERE EXISTS
[SELECT column_name FROM table_name WHERE condition];
Toán tử tồn tại có thể được sử dụng với một trong các câu lệnh này- chọn, cập nhật, chèn hoặc xóa.
MySQL tồn tại nhà điều hành
1 | Thành phố | 1 | 1 | 10 hộp x 20 túi | 18 |
2 | Chang | 1 | 1 | Chai 24 - 12 oz | 19 |
3 | Xi -rô hồi | 1 | 2 | Chai 12 - 550 ml | 10 |
4 | Chef Anton's Cajun Nêm | 2 | 2 | 48 - 6 oz lọ | 22 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 hộp | 21.35 |
Và một lựa chọn từ bảng "nhà cung cấp":
1 | Chất lỏng kỳ lạ | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | Vương quốc Anh |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Hộp 78934 | New Orleans | 70117 | Hoa Kỳ |
3 | Nhà của bà Kelly | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | Hoa Kỳ |
4 | Nhà của bà Kelly | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 100 | Thương nhân Tokyo |
Yoshi Nagase
9-8 Sekimai Musashino-Shi
Tokyo
Nhật Bản
FROM Suppliers
WHERE EXISTS [SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20];
MySQL tồn tại ví dụ
Câu lệnh SQL sau đây trả về đúng và liệt kê các nhà cung cấp với giá sản phẩm dưới 20:
Tokyo
Nhật Bản
FROM Suppliers
WHERE EXISTS [SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22];
MySQL tồn tại ví dụ