账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql 查询 偶尔 有遗漏 很奇怪
    • 2020-01-01 00:00
    • 11
    43
    0
    SELECT * FROM `order` where pay_status = 1 AND paytime BETWEEN '2019-06-11 00:00:01' AND '2019-06-11 23:59:59' AND order_type = 1 AND order_id NOT IN(SELECT order_id FROM `order` where pay_status = 1 AND paytime BETWEEN '2019-06-11 00:00:01' AND '2019-06-11 23:59:59' AND order_type = 1 GROUP BY userid)
    

    这个sql 查询 一天 有没有买重复的 前几天都很好用 今天有反馈说漏了一个 我查了查 确实漏了

    SELECT * FROM `order` where pay_status = 1 AND paytime BETWEEN '2019-06-11 00:00:01' AND '2019-06-11 23:59:59' AND order_type = 1 AND order_id

    SELECT order_id FROM `order` where pay_status = 1 AND paytime BETWEEN '2019-06-11 00:00:01' AND '2019-06-11 23:59:59' AND order_type = 1 GROUP BY userid

    的结果集差了1个,时间是在中午 条件也都符合 但是合起来的 那个sql 就查不出来
    头一次遇见这种事,求大神 指教 或者说说可能是哪方面的问题

    2
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 洅回首ㄨ恍然如梦 普通会员 1楼

      在MySQL中,有时会遇到查询结果遗漏的情况,这可能是由于以下原因造成的:

      1. 使用了不正确的索引:在某些情况下,MySQL可能在没有正确索引的情况下执行查询,这可能会导致结果遗漏。

      2. 查询的条件不满足:如果你在查询中使用了某个条件,但是这个条件在数据集中不存在,那么结果可能会遗漏。

      3. 查询的结果过于复杂:如果你的查询结果非常复杂,例如包含了大量的嵌套查询,那么查询可能会很慢,这可能会导致结果遗漏。

      4. 数据库连接问题:如果你的数据库连接有问题,例如网络连接不稳定,或者数据库服务器出现问题,那么查询结果可能会遗漏。

      5. 存储引擎问题:如果你的数据库使用的是某个存储引擎,但是这个存储引擎的查询性能较低,那么查询结果可能会遗漏。

      解决这个问题的方法是:

      1. 检查索引:确保你的查询索引设置正确,包括主索引和辅助索引。

      2. 检查查询条件:确保你的查询条件在数据集中存在,而且条件的含义正确。

      3. 分析查询结果:如果你的查询结果非常复杂,那么可能需要考虑使用更简单的查询结构,或者使用更高效的数据处理技术。

      4. 确保数据库连接:确保你的数据库连接稳定,数据库服务器正常运行。

      5. 使用更好的存储引擎:如果可能,尝试使用更高效的数据存储引擎,例如InnoDB。

      如果你的查询结果遗漏的情况仍然存在,你可能需要进一步检查你的数据库设置和查询逻辑,以找出问题的原因。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部