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条件