Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL ISNULL () Dijelaskan

Di MySQL, ISNULL() fungsi memungkinkan kita untuk memeriksa apakah suatu nilai adalah null atau tidak. Jika null , lalu 1 dikembalikan, jika tidak 0 dikembalikan.

Sintaks

ISNULL(expr)

Contoh

Berikut adalah contoh sederhana untuk ditunjukkan:

SELECT ISNULL( null );

Hasil:

1

Dalam hal ini, ekspresinya adalah null dan hasilnya adalah 1 .

Ini dia dengan non-null nilai:

SELECT ISNULL( 'Cake' );

Hasil:

0

Kali ini hasilnya 0 (karena ekspresinya bukan null ).

Ekspresi

ISNULL() memeriksa hasil ekspresi apa pun. Jadi jika kita melakukan hal berikut, misalnya:

SELECT ISNULL( 3 / 0 );

Kami mendapatkan ini:

1

Jadi meskipun kami tidak menentukan null sebagai argumen, hasil dari ekspresi adalah null , dan ISNULL() mengembalikan 1 .

Ini dapat ditunjukkan lebih jelas dengan contoh berikut:

SELECT 
    3 / 0,
    ISNULL( 3 / 0 );

Hasil:

+-------+-----------------+
| 3 / 0 | ISNULL( 3 / 0 ) |
+-------+-----------------+
|  NULL |               1 |
+-------+-----------------+
1 row in set, 2 warnings (0.00 sec)

Di kolom pertama kita dapat melihat bahwa perhitungan itu sendiri menghasilkan nilai nol, dan kolom kedua mengembalikan 1 .

Saat kami melakukannya, berikut adalah peringatannya:

SHOW WARNINGS

Hasil:

+---------+------+---------------+
| Level   | Code | Message       |
+---------+------+---------------+
| Warning | 1365 | Division by 0 |
| Warning | 1365 | Division by 0 |
+---------+------+---------------+

Kami diperingatkan bahwa kami mencoba membagi dengan nol (yang menghasilkan nilai nol).

Contoh Basis Data

Misalkan kita memiliki tabel database seperti ini:

SELECT * FROM Pets;

Hasil:

+-------+-----------+---------+---------+------------+
| PetId | PetTypeId | OwnerId | PetName | DOB        |
+-------+-----------+---------+---------+------------+
|     1 |         2 |       3 | Fluffy  | 2020-11-20 |
|     2 |         3 |       3 | Fetch   | 2019-08-16 |
|     3 |         2 |       2 | Scratch | 2018-10-01 |
|     4 |         3 |       3 | Wag     | 2020-03-15 |
|     5 |         1 |       1 | Tweet   | 2020-11-28 |
|     6 |         3 |       4 | Fluffy  | 2020-09-17 |
|     7 |         3 |       2 | Bark    | NULL       |
|     8 |         2 |       4 | Meow    | NULL       |
|     9 |         3 |       1 | Woof    | 2020-10-03 |
|    10 |         4 |       5 | Ears    | 2022-01-11 |
+-------+-----------+---------+---------+------------+

Berikut kueri yang menggunakan ISNULL() fungsi terhadap tabel itu:

SELECT
    PetId,
    PetName,
    ISNULL( DOB ) AS "DOB is Missing?"
FROM Pets;

Hasil:

+-------+---------+-----------------+
| PetId | PetName | DOB is Missing? |
+-------+---------+-----------------+
|     1 | Fluffy  |               0 |
|     2 | Fetch   |               0 |
|     3 | Scratch |               0 |
|     4 | Wag     |               0 |
|     5 | Tweet   |               0 |
|     6 | Fluffy  |               0 |
|     7 | Bark    |               1 |
|     8 | Meow    |               1 |
|     9 | Woof    |               0 |
|    10 | Ears    |               0 |
+-------+---------+-----------------+

Dalam hal ini, kami membuat kolom yang menampilkan 1 untuk semua hewan peliharaan yang tidak memiliki apa pun di kolom DOB mereka.

Katakanlah kita ingin mengembalikan semua hewan peliharaan yang tidak mencantumkan tanggal lahir (yaitu DOB mereka bidangnya adalah null ). Dalam hal ini, kita dapat melakukan hal berikut:

SELECT * FROM Pets
WHERE ISNULL(DOB) = 1;

Hasil:

+-------+-----------+---------+---------+------+
| PetId | PetTypeId | OwnerId | PetName | DOB  |
+-------+-----------+---------+---------+------+
|     7 |         3 |       2 | Bark    | NULL |
|     8 |         2 |       4 | Meow    | NULL |
+-------+-----------+---------+---------+------+

Itu menghasilkan hasil yang sama dengan melakukan hal berikut:

SELECT * FROM Pets
WHERE DOB IS NULL;

Hasil:

+-------+-----------+---------+---------+------+
| PetId | PetTypeId | OwnerId | PetName | DOB  |
+-------+-----------+---------+---------+------+
|     7 |         3 |       2 | Bark    | NULL |
|     8 |         2 |       4 | Meow    | NULL |
+-------+-----------+---------+---------+------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan batasan CHECK khusus pada tabel MySQL?

  2. PHP Kesalahan fatal:Kelas 'PDO' tidak ditemukan

  3. Menggunakan if(isset($_POST['submit'])) untuk tidak menampilkan gema saat skrip terbuka tidak berfungsi

  4. Mengapa penyisipan MySQL InnoDB sangat lambat?

  5. MySQL match() against() - urutkan berdasarkan relevansi dan kolom?