Mysql 查询由于where子句而给出空结果

Mysql 查询由于where子句而给出空结果,mysql,Mysql,表格:tbl\u电子邮件\u调度程序 此处发送日期='2013-10-12',发送状态=NULL。(在创建表时,我已将发送状态默认为NULL) Mysql: SELECT id, to_users, subject, message, product_id, date_to_send, send_status, status, createdate FROM tbl_email_scheduler WHERE date_to_send = '2013-10-1

表格:tbl\u电子邮件\u调度程序

此处
发送日期='2013-10-12',发送状态=NULL
。(在创建表时,我已将发送状态默认为NULL)

Mysql:

SELECT
  id,
  to_users,
  subject,
  message,
  product_id,
  date_to_send,
  send_status,
  status,
  createdate
FROM tbl_email_scheduler
WHERE date_to_send = '2013-10-12'   
给我结果

但是当我

SELECT
  id,
  to_users,
  subject,
  message,
  product_id,
  date_to_send,
  send_status,
  status,
  createdate
FROM tbl_email_scheduler
WHERE date_to_send = '2013-10-12'
    and send_status != 'Y'
它给我空的结果为什么?
请回答

我认为你的错误在mysql中是不平等的”

试试这个

SELECT id, to_users, subject, message, product_id, date_to_send, send_status, STATUS , createdate FROM tbl_email_scheduler WHERE date_to_send = '2013-10-12' AND send_status <> 'Y' LIMIT 0 , 30
选择id、收件人用户、主题、消息、产品id、发送日期、发送状态、状态、从tbl\u电子邮件计划程序创建的日期,其中发送日期='2013-10-12'和发送状态'Y'限制0,30

NULL
进行任何比较都会产生
NULL
。在处理
NULL
时,应根据需要使用以下运算符

x为NULL
-确定左侧表达式是否为NULL

x不是空的
-如上所述,但正好相反


x y
-以安全的方式比较两个操作数是否相等,即NULL被视为正常值。

因为数据库服务器将
NULL
视为无,请尝试此操作

SELECT 
  id,
  to_users,
  subject,
  message,
  product_id,
  date_to_send,
  send_status,
  status,
  createdate
FROM tbl_email_scheduler 
WHERE date_to_send = '2013-10-12' and (send_status !='Y' OR send_status IS NULL)

在第二个查询中,您将定义发送状态是否不是Y。
这意味着如果send_status为空,则不会获取任何内容

你应该像这样试试

SELECT
  id,
  to_users,
  subject,
  message,
  product_id,
  date_to_send,
  send_status,
  status,
  createdate
FROM tbl_email_scheduler
WHERE date_to_send = '2013-10-12'
    and (send_status != 'Y' AND send_status IS NOT NULL)
这将首先获取所有非空结果并应用not equals Y条件