Sementara sebagian besar aplikasi akan memiliki beberapa bentuk teknologi sisi server atau bahkan sisi klien yang dapat digunakan untuk menyaring hasil kueri basis data yang mungkin berisi NULL
atau nilai kosong, menggunakan bahasa lain dan beban tambahan untuk mengeksekusi kode biasanya lebih mahal untuk server dan, pada kenyataannya, sebagian besar tidak perlu.
Sebagai gantinya, di bawah ini kami akan secara singkat mengeksplorasi cara menggunakan mesin MySQL itu sendiri untuk melakukan tugas ini, hanya mengambil catatan yang Anda inginkan sambil mengecualikan mereka dengan NULL
yang mengganggu. kolom dalam campuran.
BUKAN Operator Perbandingan NULL
Sejauh ini metode paling sederhana dan paling mudah untuk memastikan kumpulan hasil kolom tertentu tidak mengandung NULL
nilainya adalah dengan menggunakan IS NOT NULL
operator perbandingan.
Misalnya, jika kita ingin memilih semua catatan di books
tabel tempat primary_author
kolom bukan NULL
, kueri mungkin terlihat seperti ini:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
primary_author IS NOT NULL;
Karena IS NOT NULL
berperilaku sama seperti komparator lainnya, dapat dikombinasikan dengan WHERE
lainnya klausa untuk menyaring hasil lebih lanjut, sama seperti jika Anda menggunakan =
, >
, <
, LIKE
dan operator perbandingan standar lainnya.
Memfilter NULL dari Beberapa Kolom
Dalam beberapa kasus, Anda mungkin ingin mengambil hasil di mana tidak NULL
nilai ada di beberapa kolom. Misalnya, kami memiliki beberapa catatan di books
tabel:
id | title | primary_author | published_date
1 | The Hobbit | Tolkien | 09-21-1937
2 | The Silmarillion | Tolkien | 09-15-1977
3 | The Name of the Wind | Rothfuss | 03-27-2007
4 | The Wise Man's Fear | Rothfuss | 03-01-2011
5 | The Doors of Stone | Rothfuss | NULL
6 | Beowulf | NULL | 01-01-1000
Perhatikan bahwa Pintu Batu (id 5
) tidak dipublikasikan dan oleh karena itu published_date
adalah NULL
. Demikian pula, Beowulf (id 6
) – puisi epik Inggris Kuno yang terkenal – tidak memiliki penulis yang diketahui, jadi primary_author
adalah NULL
.
Dalam hal ini, kami mungkin ingin membuat kueri untuk hasil yang hanya berisi empat yang pertama record, dengan demikian tidak termasuk dua record terakhir yang memiliki NULL
nilai baik dalam primary_author
atau published_date
. Ini dapat dilakukan dengan pernyataan sederhana ini menggunakan AND
dengan beberapa operator perbandingan:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
(
primary_author IS NOT NULL
AND
published_date IS NOT NULL
);
Catatan:Tanda kurung tidak diperlukan, tetapi merupakan praktik yang baik untuk menyertakan komparator yang dikelompokkan agar lebih mudah dibaca.
Itu dia; operator perbandingan sederhana yang dapat digunakan untuk menyaring semua NULL
nilai dalam catatan Anda.