周大胖子 发表于 2018-7-27 00:40:20

MYSQL NULL 值处理

一个很直白的概念: 取值时,如果提供的查询条件字段为NULL 时,该命令 可能无法工作,所以要处理 NULL 值;
处理NULL的三大运算符:
   IS NULL : 当列的值是NULL , 此运算符返回TRUE .
   IS NOT NULL :当列的值不为NULL , 运算符返回TRUE.
   <=>:比较操作符 (不同于 = 运算符) , 当比较的两个值为NULL 在列中查找NULL 值。
关于NULL 的条件比较运算符是比较特殊的,不能使用 =NULL 或!=NULL 在列中查找NULL 值。
在MYSQL 中,NULL 值与任何其他值的比较(即使是NULL ) 永远返回FALSE , 就是 NULL = NULL 返回 false .

来来来 贴段代码
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| 菜鸟教程| NULL         |
| Google      | NULL         |
+---------------+--------------+
2 rows in set (0.01 sec)

mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| RUNOOB      | 20         |
| FK            | 20         |
+---------------+--------------+
2 rows in set (0.01 sec)


PHP中 NULL 的处理:
在PHP脚本中, 可以用if_else 语句来处理变量是否为空,从而生成相应的条件语句。
<?php
$dbhost = 'localhost:3306';// mysql服务器主机地址
$dbuser = 'root';            // mysql用户名
$dbpass = '123456';          // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");

if( isset($runoob_count ))
{
   $sql = "SELECT runoob_author, runoob_count
         FROMrunoob_test_tbl
         WHERE runoob_count = $runoob_count";
}
else
{
   $sql = "SELECT runoob_author, runoob_count
         FROMrunoob_test_tbl
         WHERE runoob_count IS NULL";
}
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>菜鸟教程 IS NULL 测试<h2>echo '<table border="1"><tr><td>作者</td><td>登陆次数</td></tr>while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
    echo "<tr>".
         "<td>{$row['runoob_author']} </td> ".
         "<td>{$row['runoob_count']} </td> ".
         "</tr>";
}
echo '</table>mysqli_close($conn);
?>






页: [1]
查看完整版本: MYSQL NULL 值处理