【问题标题】:Mysql: Is null does not work with other sentencesMysql:Is null 不与其他语句一起使用
【发布时间】:2021-03-05 16:58:39
【问题描述】:

is null 与其他句子组合时无效

这是我要运行的一段 sql

SELECT * from `sms_inbox` where `from` is not null and `from` != '' and
received_date in (
select max(received_date) as received_date
from sms_inbox where user_id is NULL group by `from`
order by received_date desc
) order by `received_date` desc

如果我只运行这部分代码就可以了

select max(received_date) as received_date, user_id
from sms_inbox where user_id is NULL group by `from`
order by received_date DESC

但如果我使用完整的咨询,它就不起作用

【问题讨论】:

  • 您希望从完整查询中获得哪些数据?您将在内部查询中获得received_dates 的列表,然后使用这些列表来过滤外部/主查询。您在寻找什么确切数据?主查询不会过滤user_id,而是过滤fromreceived_date

标签: mysql sql laravel


【解决方案1】:

select max(received_date) as received_date, user_id from sms_inbox where user_id is NULL group by 'from' order by received_date DESC 返回 user_id 为 null 的 recieve_dates 列表。

然后你做SELECT * from 'sms_inbox' where received_date in(SUB_QUERY)。在此查询中,您没有过滤掉user_id = null。你所做的只是匹配recieve_dates。因此,我认为您的记录具有相同的 received_date,其中 user_id 既为空又不为空。那些不为空的正在泄漏,因为您从未删除它们。

【讨论】:

    猜你喜欢
    • 2018-01-03
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多