Làm cách nào để kiểm tra xem một hàng không tồn tại trong mysql?
Đôi khi, bạn có thể cần tìm các hàng không có trong bảng khác hoặc chọn các hàng không có trong bảng khác. Trong bài viết này, chúng ta sẽ xem xét cách hiển thị các hàng không có trong một bảng khác trong MySQL, sử dụng mệnh đề NOT EXISTS Show
Mệnh đề MySQL NOT EXISTSMySQL cung cấp các mệnh đề EXISTS, UNION và NOT EXISTS giúp bạn thực hiện các thao tác SET với bảng MySQL. Bằng các thao tác SET, chúng tôi muốn nói rằng bạn có thể coi các bảng MySQL & kết quả truy vấn là các tập hợp toán học và chọn các hàng có trong cả hai bảng hoặc chỉ một trong các bảng. Đối với bài viết của chúng tôi, chúng tôi sẽ sử dụng mệnh đề NOT EXISTS Cách hiển thị các hàng không có trong bảng khácDưới đây là các bước để tìm các hàng không có trong bảng khác. Giả sử bạn có hai bảng doanh số (id, order_date, số tiền) và đơn đặt hàng (id, order_date, số tiền) mysql> create table sales(id int, order_date date, amount int); mysql> insert into sales(id, order_date, amount) values(1, '2021-01-24',250), (2, '2021-01-25',250), (3, '2021-01-26',250), (4, '2021-01-27',250), (5, '2021-01-28',250), (6, '2021-01-29',250), (7, '2021-01-30',250), (8, '2021-01-31',250), (9, '2021-02-01',250); mysql> select * from sales; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2021-01-24 | 250 | | 2 | 2021-01-25 | 250 | | 3 | 2021-01-26 | 250 | | 4 | 2021-01-27 | 250 | | 5 | 2021-01-28 | 250 | | 6 | 2021-01-29 | 250 | | 7 | 2021-01-30 | 250 | | 8 | 2021-01-31 | 250 | | 9 | 2021-02-01 | 250 | +------+------------+--------+ mysql> create table orders(id int, order_date date, amount int); mysql> insert into orders(id, order_date, amount) values(5, '2021-01-28',250), (6, '2021-01-29',250), (7, '2021-01-30',250), (8, '2021-01-31',250), (9, '2021-02-01',250); mysql> select * from orders; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 5 | 2021-01-28 | 250 | | 6 | 2021-01-29 | 250 | | 7 | 2021-01-30 | 250 | | 8 | 2021-01-31 | 250 | | 9 | 2021-02-01 | 250 | +------+------------+--------+ Cũng đọc. Cách lấy dữ liệu tuần hiện tại trong MySQL Đây là truy vấn SQL để chọn dữ liệu từ bảng doanh số không có trong bảng đơn đặt hàng mysql> SELECT * FROM sales D WHERE NOT EXISTS(SELECT * FROM orders c WHERE D.order_date = C.order_date); +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2021-01-24 | 250 | | 2 | 2021-01-25 | 250 | | 3 | 2021-01-26 | 250 | | 4 | 2021-01-27 | 250 | +------+------------+--------+ Cũng đọc. Chọn 10 bản ghi hàng đầu cho mỗi danh mục trong MySQL Trong truy vấn trên, chúng tôi sử dụng mệnh đề NOT EXISTS để chọn hàng từ bảng doanh số không có trong bảng đơn hàng, được chọn bằng truy vấn con. Trong truy vấn con, chúng tôi chỉ chọn những hàng từ bảng đơn đặt hàng có order_date giống với bảng bán hàng Cần một công cụ báo cáo cho MySQL? . Thử nó ngay hôm nay Hầu hết mọi người đều đã từng rơi vào trường hợp cần kiểm tra xem một bản ghi có tồn tại trong cơ sở dữ liệu MySQL hay không Hãy xem qua cách thực hiện điều đó với lệnh phù hợp và dễ dàng nhất. Dưới đây, bạn có thể tìm thấy lệnh phù hợp và một lỗi phổ biến mà hầu hết mọi người mới bắt đầu đều có thể mắc phải khi cố gắng tìm ra vấn đề Nếu bạn muốn kiểm tra xem một bản ghi đã tồn tại trong cơ sở dữ liệu của mình hay chưa, bạn hãy chạy đoạn mã sau Sử dụng MySqli Sử dụng mysql (không dùng nữa)
Bây giờ, hãy kiểm tra một lỗi phổ biến mà chúng tôi khuyên bạn nên khắc phục MySQL được coi là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở. Nó nhằm mục đích tổ chức dữ liệu thành một hoặc nhiều bảng dữ liệu Một số ứng dụng phổ biến như Twitter, Facebook YouTube, Google áp dụng MySQL cho mục đích lưu trữ dữ liệu. Ban đầu nó được tạo ra để sử dụng hạn chế. Tuy nhiên, giờ đây nó tương thích với nhiều nền tảng điện toán thiết yếu như macOS, Linux Ubuntu và Microsoft Windows Bài viết cung cấp tổng quan chi tiết về câu lệnh T-SQL IF EXISTS và NOT EXISTS. Nó cũng giải thích tại sao nên chọn EXISTS thay vì IN và NOT EXISTS thay vì NOT IN khi so sánh các tập dữ liệu bằng truy vấn con SQL EXISTS là một toán tử logic được sử dụng để kiểm tra sự tồn tại của các hàng trong cơ sở dữ liệu. Nó trả về TRUE trong trường hợp truy vấn con trả về một hoặc nhiều bản ghi. SQL NOT EXISTS hoạt động hoàn toàn ngược lại với toán tử EXISTS và thỏa mãn trong trường hợp không có hàng nào được truy vấn con trả về nội dung Sử dụng SQL EXISTSKết quả của điều kiện EXISTS là một giá trị boolean—Đúng hoặc Sai. SQL Server EXISTS có thể được sử dụng trong các câu lệnh SELECT, UPDATE, INSERT hoặc DELETE SQL EXISTS cú pháp
Ví dụ SQL EXISTSHãy xem xét ví dụ sau về cách sử dụng SQL EXISTS. Giả sử, cơ sở dữ liệu BicycleStoreDev của chúng tôi chứa hai bảng. Khách hàng và Đơn đặt hàng, được liên kết với mối quan hệ một-nhiều bảng Giả sử chúng ta muốn khởi chạy chiến dịch tiếp thị lại và do đó, chúng ta cần có danh sách khách hàng đã đặt ít nhất một đơn hàng. Vì vậy, làm cách nào để kiểm tra xem một hàng có tồn tại trong SQL hay không?
Truy vấn liệt kê các hàng từ bảng Khách hàng trong đó các trường CustomerID bằng các trường OrderID trong bảng Đơn hàng Sử dụng SQL KHÔNG TỒN TẠIĐiều kiện SQL Server NOT EXISTS bao gồm hai toán tử logic. EXISTS, được mô tả ở trên và NOT, được sử dụng để phủ nhận đầu vào Boolean Sự khác biệt giữa EXISTS và NOT EXISTS trong SQL là gì? SQL NOT EXISTS cú pháp
SQL KHÔNG TỒN TẠI trong truy vấn conNOT EXISTS được sử dụng với truy vấn con trong mệnh đề WHERE để kiểm tra xem kết quả của truy vấn con trả về TRUE hay FALSE. Giá trị Boolean sau đó được sử dụng để thu hẹp các hàng từ câu lệnh chọn bên ngoài Nói một cách đơn giản, truy vấn con NOT EXISTS kiểm tra mọi hàng từ truy vấn bên ngoài, trả về TRUE hoặc FALSE, sau đó gửi giá trị cho truy vấn bên ngoài để sử dụng. Nói một cách đơn giản hơn, khi bạn sử dụng SQL NOT EXISTS, truy vấn sẽ trả về tất cả các hàng không thỏa mãn điều kiện EXISTS. Ví dụ SQL KHÔNG EXISTSĐể chứng minh việc sử dụng NOT EXISTS trong SQL Server, chúng tôi sẽ truy vấn bảng Khách hàng để tìm các hàng mà ID khách hàng không tồn tại trong bảng Đơn hàng. Do đó, bằng cách sử dụng NOT EXISTS, chúng tôi sẽ nhận được danh sách khách hàng chưa đặt bất kỳ đơn hàng nào Sự khác biệt giữa Máy chủ SQL IN và EXISTSToán tử logic IN trong SQL trả về TRUE nếu một giá trị đã chỉ định khớp với một trong các giá trị trong truy vấn con hoặc danh sách. Nói một cách đơn giản, toán tử IN so sánh một giá trị đã cho với một danh sách giá trị đã chỉ định. Trong trường hợp giá trị đã cho khớp với ít nhất một giá trị trong danh sách, nó sẽ trả về TRUE, nếu không, FALSE sẽ bị ném Giả sử, chúng ta tiếp tục chiến dịch tiếp thị lại và cần lấy danh sách khách hàng sống ở New York để gửi ưu đãi đặc biệt cho họ
Hãy nhớ truy vấn của chúng tôi với EXISTS? . Như bạn có thể thấy, kết quả là như nhau. Vậy nên chọn cái nào? Chúng ta cũng nên đề cập đến những khác biệt lớn khác giữa hai nhà khai thác
Máy chủ SQL KHÔNG VÀO vs KHÔNG TỒN TẠISQL NOT IN bao gồm hai toán tử logic. IN mà chúng tôi đã mô tả ở trên và NOT có thể được đặt trước bất kỳ câu lệnh điều kiện nào để tìm các hàng mà câu lệnh đó sai Cách sử dụng NOT IN trong SQLHãy tiếp tục với chiến dịch tiếp thị lại của chúng tôi. Giả sử, bây giờ chúng ta cần lấy danh sách khách hàng sống ở các bang khác ngoài New York
Hiệu suất NOT IN so với NOT EXISTS trong SQL ServerĐầu tiên, chúng ta nên đề cập rằng NOT EXISTS và NOT IN không giống như EXISTS và IN không thể hoán đổi cho nhau trong mọi tình huống. Cụ thể, khi có NULL, chúng sẽ trả về các kết quả khác nhau. Trong trường hợp này, khi truy vấn con trả về dù chỉ một null, NOT IN sẽ không khớp với bất kỳ hàng nào Về khía cạnh hiệu năng, SQL NOT EXISTS sẽ là lựa chọn tốt hơn SQL NOT IN. NOT EXISTS nhanh hơn đáng kể so với NOT IN, đặc biệt khi kết quả truy vấn con rất lớn Phần kết luậnSQL là một ngôn ngữ logic và mọi thứ hoạt động khá đơn giản tại đây. Các toán tử logic của nó kiểm tra điều kiện và trả về kiểu dữ liệu Boolean. Trong một số trường hợp nhất định, các toán tử logic này có thể được sử dụng thay thế cho nhau và việc lựa chọn toán tử nào là tùy thuộc vào người dùng. Trong bài viết, chúng tôi đã cung cấp một cái nhìn tổng quan và so sánh chi tiết về SQL EXISTS, NOT EXISTS, IN và NOT IN để bạn đủ hiểu biết và có những lựa chọn phù hợp trong công việc của mình Ảnh chụp màn hình trong bài viết mà chúng tôi đã tạo trong công cụ SQL Complete—một phần bổ trợ SSMS và Visual Studio giúp cải thiện và tăng tốc đáng kể khả năng viết mã SQL của người dùng. Bạn muốn thử nó cho mình? Làm cách nào để kiểm tra xem hàng có tồn tại trong SQL không?Toán tử EXISTS được sử dụng để kiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn con. Toán tử EXISTS trả về TRUE nếu truy vấn con trả về một hoặc nhiều bản ghi
Row_count() trong MySQL là gì?Mô tả. ROW_COUNT() trả về số hàng được cập nhật, chèn hoặc xóa bởi câu lệnh trước . Điều này giống như số lượng hàng mà máy khách mysql hiển thị và giá trị từ hàm API mysql_affected_rows() C.
Nếu không tồn tại trong MySQL là gì?Mệnh đề “nếu không tồn tại” được dùng để tạo bảng và rất hữu ích để tránh lỗi “bảng đã tồn tại” .
Bạn có thể sử dụng. = Trong MySQL?Trong MySQL, bạn có thể sử dụng <> hoặc. = toán tử để kiểm tra sự bất bình đẳng trong một truy vấn . Ví dụ: chúng ta có thể kiểm tra sự bất bình đẳng bằng toán tử <>, như sau. CHỌN * TỪ danh bạ WHERE last_name <> 'Johnson'; |