Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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:

Tên tham sốMô tả
col_namesNó 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ạngNó chỉ định để tìm kiếm giá trị cụ thể từ bảng.
SubqueryNó 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:

Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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:

Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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:

Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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.

Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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.

Hướng dẫn what does exists return in mysql? - những gì tồn tại trả lại trong mysql?

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:

SnTRONGTồn tại
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 →

13.2.11.6 & NBSP; Các nhóm phụ có tồn tại hoặc không tồn tại

Nếu một công cụ con trả về bất kỳ hàng nào, EXISTS subqueryTRUENOT EXISTS subqueryFALSE. Ví dụ:

SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);

Theo truyền thống, một truy vấn con

SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
0 bắt đầu với
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
1, nhưng nó có thể bắt đầu bằng
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
2 hoặc
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
3 hoặc bất cứ điều gì. MySQL bỏ qua danh sách
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
4 trong một truy vấn con như vậy, vì vậy nó không có gì khác biệt.

Đối với ví dụ trước, nếu

SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
5 chứa bất kỳ hàng nào, thậm chí các hàng không có gì ngoài các giá trị
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
6, điều kiện
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
0 là TRUE. Đây thực sự là một ví dụ không thể xảy ra bởi vì một trình điều khiển con
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
9 hầu như luôn luôn chứa các mối tương quan. Dưới đây là một số ví dụ thực tế hơn:

  • Những loại cửa hàng có mặt trong một hoặc nhiều thành phố?

    SELECT DISTINCT store_type FROM stores
      WHERE EXISTS (SELECT * FROM cities_stores
                    WHERE cities_stores.store_type = stores.store_type);
  • Loại cửa hàng nào có mặt ở No City?

    SELECT DISTINCT store_type FROM stores
      WHERE NOT EXISTS (SELECT * FROM cities_stores
                        WHERE cities_stores.store_type = stores.store_type);
  • Những loại cửa hàng có mặt ở tất cả các thành phố?

    SELECT DISTINCT store_type FROM stores s1
      WHERE NOT EXISTS (
        SELECT * FROM cities WHERE NOT EXISTS (
          SELECT * FROM cities_stores
           WHERE cities_stores.city = cities.city
           AND cities_stores.store_type = stores.store_type));

Ví dụ cuối cùng là truy vấn

SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
0 được lồng đôi. Đó là, nó có một mệnh đề
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
0 trong mệnh đề
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
2. Chính thức, nó trả lời câu hỏi mà một thành phố có tồn tại với một cửa hàng không có trong
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
3 không? Nhưng dễ dàng hơn để nói rằng một
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
2 được lồng vào câu hỏi là
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
5 TRUE cho tất cả
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
7?does a city exist with a store that is not in
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
3
? But it is easier to say that a nested
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
2 answers the question is
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
5 TRUE for all
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
7?

Trong MySQL 8.0.19 và sau đó, bạn cũng có thể sử dụng

SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
0 hoặc
SELECT DISTINCT store_type FROM stores
  WHERE EXISTS (SELECT * FROM cities_stores
                WHERE cities_stores.store_type = stores.store_type);
2 với
SELECT DISTINCT store_type FROM stores
  WHERE NOT EXISTS (SELECT * FROM cities_stores
                    WHERE cities_stores.store_type = stores.store_type);
0 trong truy vấn con, như thế này:

SELECT column1 FROM t1 WHERE EXISTS (TABLE t2);

Các kết quả giống như khi sử dụng

SELECT DISTINCT store_type FROM stores
  WHERE NOT EXISTS (SELECT * FROM cities_stores
                    WHERE cities_stores.store_type = stores.store_type);
1 không có mệnh đề
SELECT DISTINCT store_type FROM stores
  WHERE NOT EXISTS (SELECT * FROM cities_stores
                    WHERE cities_stores.store_type = stores.store_type);
2 trong trình điều khiển con.


Làm cách nào để kiểm tra nếu mysql tồn tại?

Để kiểm tra xem một hàng tồn tại trong bảng MySQL hay không, hãy sử dụng điều kiện tồn tại. Các điều kiện tồn tại có thể được sử dụng với SB. Nó trả về đúng khi hàng tồn tại trong bảng, nếu không thì sai được trả về. True được biểu diễn dưới dạng 1 và false được biểu thị là 0.

Điều gì không tồn tại trở lại SQL?

Toán tử 'không tồn tại' trong SQL Server sẽ kiểm tra trình điều khiển con cho sự tồn tại của hàng.Nếu không có hàng thì nó sẽ trả về đúng, nếu không thì sai.Toán tử không tồn tại sẽ trả về các kết quả hoàn toàn ngược lại với kết quả được trả về bởi trình điều khiển con.The Not EXISTS operator will return the results exactly opposite to the result returned by the Subquery.

Tại sao chúng ta sử dụng tồn tại?

Tồn tại là một toán tử boolean kiểm tra kết quả truy vấn con và trả về một giá trị đúng hoặc sai.Nó được sử dụng kết hợp với phụ và kiểm tra xem một hàng có được trả lại thông qua trình điều khiển con này hay không.Toán tử này trả về true nếu trình điều khiển con trả về đơn hoặc nhiều bản ghi.checks whether a row is returned through this subquery or not. This operator returns TRUE if the subquery returns single or multiple records.

Cú pháp chính xác cho biểu thức tồn tại trong MySQL là gì?

Kết quả của tồn tại là một giá trị boolean true hoặc false.Nó có thể được sử dụng trong một câu lệnh Chọn, Cập nhật, Chèn hoặc Xóa.Cú pháp: Chọn cột_name (s) từ Table_Name nơi tồn tại (chọn cột_name (S) từ Table_Name nơi điều kiện);SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name(s) FROM table_name WHERE condition);