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!