MySQL中null值问题

今天写答疑系统的时候,写了这样一截代码:

<?php
session_start();
$db=mysqli_connect(‘localhost‘,‘root‘,‘root‘,‘qa‘);
$tname=$_POST[‘teacher‘];
$q="select schedule,place from time where Tname=‘$tname‘ and Sname is null";
$arr=mysqli_query($db,$q);
echo "您选择了". $tname."老师"."<br/>请继续选择时刻:"."<br/>";
?>
<table border="1" cellspacing="0">
    <tr>
        <th>时刻:</th>
        <th>地点:</th>
    </tr>

  <?php
    while ($result = mysqli_fetch_assoc($arr)) {
        ?>
        <tr>
            <td><?php echo $result[‘schedule‘]; ?></td>
            <td><?php echo $result[‘place‘]; ?></td>
        </tr>
        <?php
    }
 ?>
    </table>
 <form method="post" action="Stime1.php">
     您选择的时间是:<input type="datetime" name="time" />
     您的问题是:<textarea name="question"></textarea>
    <input type="submit" name="sure" value="确定"/>
</form>

是想选出某个老师没有被选过的时间段,这样的时间段才能显示在页面上让新的同学选择,但是页面上显示什么都没有,但是数据库中是有符合条件的数据项的存在的,然后我先把这个sql语句复制粘贴到数据库中运行,显示的是查询结果为空,然后我上网搜了一下,发现MySQL数据库中有的时候is null是不起作用的,下面是百度到的说法:

最后,把Sname is null改为了Sname=‘   ’,成功的查出了需要的结果,虽然是一个小的知识点,但是还是记一下,免得以后再为这种小错误浪费时间。

时间: 2024-10-29 20:37:45

MySQL中null值问题的相关文章

MYSQL中NULL值的运算

今天更新MYSQL数据库一个的表的某个字段,涉及到子查询 UPDATE t1 SET points = ( points - ( SELECT sum(point) FROM t2 WHERE t2_id NOT IN (1, 2, 3, 4) ) ); 结果是求和的子查询得到的值是NULL,然后t1表的points都成了NULL了 在MYSQL里测试了一下,在MYSQL中,任何值和NULL的运算得到的值都是NULL SELECT 100+NULL; SELECT 100-NULL; SELEC

Mysql 排序null值 排序问题分析

mysql中null值的排序问题分析 如下表t_user: name age zhangsan 1 lisi NULL wangwu 2 www.2cto.com 执行一下sql: Sql代码 select * from t_user order by age; name age lisi NULL zhangsan 1 wangwu 2 实际上我们是想将没有填写age的记录放在最后,我们可以 Sql代码 select * from t_user order by age is null, ag

微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

最近有人问我 OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示,为什么选中了 Keep Nulls 但是数据库中没有 NULL 值? 为什么在 Flat File Source 中勾选上了 Retain null values from the source as null values in the data flow 但是为什么目标表上显示的是一个当前日期,而不是 NULL 值等等,单开此文来解释这些非常容易混淆的概念. 在比较纯粹的 ETL 项

Sql与oracle中null值的区别

原贴链接请点击: 1 null值的介绍 NULL 是数据库中特有的数据类型,当一条记录的某个列为 NULL ,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此, NULL 并不是一个确定的值. 这是 NULL 的由来.也是 NULL 的基础,所有和 NULL 相关的操作的结果都可以从 NULL 的概念推导出来. 2 oracle中的null值介绍 在不知道具体有什么数据的时候,即未知,可以用NULL, 称它为空,ORACLE中,含有空值的表列长度为零.允许任何一种数据

SQL 中 Null 值使用时需要注意的地方

一.Null不支持大小/相等判断 1.下面的2个查询,不管表 users 中有多少条记录,返回的记录都是0行 select * from  users where deleted_at = null; select * from  users where deleted_at != null; 用常规的比较操作符(normal conditional operators)来将 null 与其他值比较是没有意义的. Null 也不等于 Null 2.将某个值与 null 进行比较的正确方法是使用

mysql中Null与not null的区别(转载)

相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 1.我字段类型是not null,为什么我可以插入空值 2.为毛not null的效率比null高 3.判断字段不为空的时候,到底要  select * from table where column <> '' 还是要用 select * from table where column is not null 呢. 带着上面几个疑问,我们来深入研究一下null 和 not null 到底有什么不一样. 首

mysql中CONCAT值为空的问题解决办法

在mysql中concat函数有一个特点就是有一个值为null那么不管第二个字符有多少内容都返回为空了,这个特性让我们在实例应用中可能觉得不方便,但实现就是这样我们需要使用其它办法来解决. 天在做opencart开发的时候,需要对用户表中用户的电话号码和区号连接起来,于是使用了concat方法,  代码如下 复制代码 SELECT CONCAT(isdcode,telephone) FROM gb_customer 竟然发现很多NULL列,telephone明明是有值的,于是查询了相关conca

mysql中NULL和null的区别

接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据时加引号,一直没有深入研究.今天问题又出现了,当插入的值为null时,页面显示是空的!仔细研究发现: 1.向数据表insert 'NULL'和'null'时,在数据表中显示的分别为NULL和空.   2.向数据表insert null时,在数据表中显示也为NULL.   3.从数据库select '

MySQL 中NULL和空值的区别 (转载 http://blog.sina.com.cn/s/blog_3f2a82610102v4dn.html)

平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效率的事情的发生. 问题 1: 首先,我们需要搞清楚 "空值" 和"NULL"的概念: 1:空值('')是不占用空间的 2: MySQL中的NULL其实是占用空间的.官方文档说明: “NULL columns require additional space in the