老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1132|回复: 0

MYSQL NULL 值处理

[复制链接]

662

主题

878

帖子

5115

积分

超级版主

Rank: 8Rank: 8

积分
5115
发表于 2018-7-27 00:40:20 | 显示全部楼层 |阅读模式
一个很直白的概念: 取值时,如果提供的查询条件字段为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 .

来来来 贴段代码
  1. mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
  2. +---------------+--------------+
  3. | runoob_author | runoob_count |
  4. +---------------+--------------+
  5. | 菜鸟教程  | NULL         |
  6. | Google        | NULL         |
  7. +---------------+--------------+
  8. 2 rows in set (0.01 sec)
  9. mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
  10. +---------------+--------------+
  11. | runoob_author | runoob_count |
  12. +---------------+--------------+
  13. | RUNOOB        | 20           |
  14. | FK            | 20           |
  15. +---------------+--------------+
  16. 2 rows in set (0.01 sec)
复制代码


PHP中 NULL 的处理:
在PHP脚本中, 可以用if_else 语句来处理变量是否为空,从而生成相应的条件语句。
  1. <?php
  2. $dbhost = 'localhost:3306';  // mysql服务器主机地址
  3. $dbuser = 'root';            // mysql用户名
  4. $dbpass = '123456';          // mysql用户名密码
  5. $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
  6. if(! $conn )
  7. {
  8.     die('连接失败: ' . mysqli_error($conn));
  9. }
  10. // 设置编码,防止中文乱码
  11. mysqli_query($conn , "set names utf8");
  12. if( isset($runoob_count ))
  13. {
  14.    $sql = "SELECT runoob_author, runoob_count
  15.            FROM  runoob_test_tbl
  16.            WHERE runoob_count = $runoob_count";
  17. }
  18. else
  19. {
  20.    $sql = "SELECT runoob_author, runoob_count
  21.            FROM  runoob_test_tbl
  22.            WHERE runoob_count IS NULL";
  23. }
  24. mysqli_select_db( $conn, 'RUNOOB' );
  25. $retval = mysqli_query( $conn, $sql );
  26. if(! $retval )
  27. {
  28.     die('无法读取数据: ' . mysqli_error($conn));
  29. }
  30. echo '<h2>菜鸟教程 IS NULL 测试<h2>echo '<table border="1"><tr><td>作者</td><td>登陆次数</td></tr>while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
  31. {
  32.     echo "<tr>".
  33.          "<td>{$row['runoob_author']} </td> ".
  34.          "<td>{$row['runoob_count']} </td> ".
  35.          "</tr>";
  36. }
  37. echo '</table>mysqli_close($conn);
  38. ?>
复制代码






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表