Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengecualikan Baris dalam Pertanyaan MySQL Tanpa KECUALI?

Bagaimana untuk Mengecualikan Baris dalam Pertanyaan MySQL Tanpa KECUALI?

Patricia Arquette
Patricia Arquetteasal
2025-01-01 12:05:10829semak imbas

How to Exclude Rows in MySQL Queries Without EXCEPT?

KECUALI Ralat Sintaks dalam Pertanyaan SQL

Dalam MySQL, menggunakan sintaks EXCEPT untuk mengecualikan baris daripada pertanyaan boleh mengakibatkan ralat sintaks. Ini kerana MySQL tidak menyokong kata kunci KECUALI secara asli.

Penyelesaian Alternatif

Untuk mencapai fungsi pengecualian yang diingini, anda boleh menggunakan sama ada klausa NOT IN atau a TINGGALKAN SERTAI dengan syarat IFNULL:

TIDAK MASUK Klausa:

SELECT s.sno
FROM students s
WHERE s.sno NOT IN (
    SELECT t.sno
    FROM take t
    WHERE t.cno = 'CS112'
);

KIRI SERTAI dengan IFNULL:

SELECT s.sno
FROM students s
LEFT JOIN take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112';

Contoh

Pertimbangkan perkara berikut sampel data:

create temporary table students (sno int);

insert into students values (1);
insert into students values (2);
insert into students values (3);
insert into students values (4);
insert into students values (5);
insert into students values (6);
insert into students values (7);
insert into students values (8);
insert into students values (9);
insert into students values (10);

create temporary table take (sno int, cno varchar(50));

insert into take values (1, 'CS112');
insert into take values (2, 'CS112');
insert into take values (3, 'CS112');
insert into take values (4, 'CS112');

Menggunakan sama ada klausa NOT IN atau LEFT JOIN dengan IFNULL akan mengembalikan keputusan berikut:

+------+
| sno  |
+------+
|    5 |
|    6 |
|    7 |
|    8 |
|    9 |
|   10 |
+------+

Kaedah alternatif ini berkesan mengecualikan pelajar yang telah mengikuti kursus CS112, menghasilkan senarai pelajar yang belum mengikuti kursus tersebut.

Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Baris dalam Pertanyaan MySQL Tanpa KECUALI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn