SQL Query 中用于查找空记录的查询问题

Posted

技术标签:

【中文标题】SQL Query 中用于查找空记录的查询问题【英文标题】:query issue in SQL Query for finding empty records 【发布时间】:2012-12-05 11:25:30 【问题描述】:

我在SQL 有一个查询,我需要在其中添加一个条件,以查找所有具有空字段的记录。

这给了我一个错误..

SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE SMS_MONTIME.IDTICKET ==''

谢谢

【问题讨论】:

将 =='' 更改为 ='' 只需一个 '=' 符号,或使用此处说明的 datalength 函数:***.com/a/33425/752527 【参考方案1】:

在查询中只使用= 来检查不是== 和检查空值使用is null

SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE SMS_MONTIME.IDTICKET ='' or SMS_MONTIME.IDTICKET is null

【讨论】:

谢谢你的工作,我现在怎么能找到不为空的值? is not null 可能是空值,!= 可能是非空值 谢谢你的回答 :) 我会在几分钟内接受它!【参考方案2】:

试试这个

"SELECT 
 forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
  FROM forma 
  LEFT JOIN 
   SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE SMS_MONTIME.IDTICKET =''"

或者试试这个

 WHERE SMS_MONTIME.IDTICKET is null

非空使用

WHERE SMS_MONTIME.IDTICKET is not null

【讨论】:

【参考方案3】:

检查一个空字段,即NULL 字段不能使用=。 你必须使用IS NULL 你的查询应该是这样的

SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET 
WHERE SMS_MONTIME.IDTICKET IS NULL

【讨论】:

【参考方案4】:

试试这个:

...
WHERE SMS_MONTIME.IDTICKET = '' OR SMS_MONTIME.IDTICKET IS NULL

问题是,“空白”是什么意思:'' 或 null 或更常见的是两者都有

另外,使用= 而不是==(我从未真正尝试过==,但我也从未见过其他人,所以它不会很好)

【讨论】:

以上是关于SQL Query 中用于查找空记录的查询问题的主要内容,如果未能解决你的问题,请参考以下文章

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

如何查找MySQL中查询慢的SQL语句

怎么查找执行比较慢的sql语句

用于从多个表中查找具有表名的所有记录的 SQL 查询

用于查找 count > 1 的记录的 SQL 查询