MySQL NULL Value Processing Example Details

  • 2021-06-29 12:16:05
  • OfStack

MySQL NULL value processing

We already know that MySQL uses the SQL SELECT command and the WHERE clause to read data from a data table, but when the query condition field provided is NULL, the command may not work properly.

To handle this situation, MySQL provides three operators:

IS NULL: This operator returns true when the value of the column is NULL. IS NOT NULL: The operator returns true when the column value is not NULL. < = > : The comparison operator (unlike the = operator) returns true when the two values compared are NULL.

The conditional comparison operation on NULL is special.You can't use = NULL or!=NULL looks for the NULL value in the column.

In MySQL, the comparison of the NULL value with any other value (even NULL) always returns false, that is, NULL = NULL returns false.

Processing NULL in MySQL uses the IS NULL and IS NOT NULL operators.

Use NULL value in command prompt

The following example assumes table tcount_in database TUTORIALStbl contains two columns of tutorial_author and tutorial_count, tutorial_Insert NULL value set in count.

Example

Try the following example:


root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> create table tcount_tbl
  -> (
  -> tutorial_author varchar(40) NOT NULL,
  -> tutorial_count INT
  -> );
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO tcount_tbl
  -> (tutorial_author, tutorial_count) values ('mahran', 20);
mysql> INSERT INTO tcount_tbl
  -> (tutorial_author, tutorial_count) values ('mahnaz', NULL);
mysql> INSERT INTO tcount_tbl
  -> (tutorial_author, tutorial_count) values ('Jen', NULL);
mysql> INSERT INTO tcount_tbl
  -> (tutorial_author, tutorial_count) values ('Gill', 20);

mysql> SELECT * from tcount_tbl;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahran     |       20 |
| mahnaz     |      NULL |
| Jen       |      NULL |
| Gill      |       20 |
+-----------------+----------------+
4 rows in set (0.00 sec)

mysql>

You can see = and!=Operators do not work:


mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL;
Empty set (0.00 sec)
mysql> SELECT * FROM tcount_tbl WHERE tutorial_count != NULL;
Empty set (0.01 sec)

Find tutorial_in DatasheetWhether the count column is NULL or not, you must use IS NULL and IS NOT NULL, as shown in the following example:


mysql> SELECT * FROM tcount_tbl 
  -> WHERE tutorial_count IS NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahnaz     |      NULL |
| Jen       |      NULL |
+-----------------+----------------+
2 rows in set (0.00 sec)
mysql> SELECT * from tcount_tbl 
  -> WHERE tutorial_count IS NOT NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahran     |       20 |
| Gill      |       20 |
+-----------------+----------------+
2 rows in set (0.00 sec)
 

Using the PHP script to process NULL values

In the PHP script, you can use the if... else statement to process whether a variable is empty or not and generate the corresponding conditional statement.

PHP set $tutorial_in the following instancecount variable, then use it with tutorial_in the data tablecount field comparison:


<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}
if( isset($tutorial_count ))
{
  $sql = 'SELECT tutorial_author, tutorial_count
      FROM tcount_tbl
      WHERE tutorial_count = $tutorial_count';
}
else
{
  $sql = 'SELECT tutorial_author, tutorial_count
      FROM tcount_tbl
      WHERE tutorial_count IS $tutorial_count';
}

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
 die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
  echo "Author:{$row['tutorial_author']} <br> ".
     "Count: {$row['tutorial_count']} <br> ".
     "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

Thank you for reading, I hope to help you, thank you for your support on this site!


Related articles: