同样的sql语句查询出的结果不同!why?
客户查询的是800,我查询的是799,我想知道为什么会有差异,而且差异那么小,我最想知道差异是怎么产生的数据库一样,表也一样...
客户查询的是800,我查询的是799,我想知道为什么会有差异,而且差异那么小,我最想知道差异是怎么产生的
数据库一样,表也一样 展开
数据库一样,表也一样 展开
7个回答
展开全部
确认你或你的客户没有未commit的操作。
即你执行了一个delete操作,但是未commit,此时delete保存在内存中,你查询的结果显示少一。
即你执行了一个delete操作,但是未commit,此时delete保存在内存中,你查询的结果显示少一。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将客户的数据拿到你的机器上试试,还有可能与缓存有有关系 关掉程序 重新打开
追问
同样的数据库 我就是在客户那里查询的 郁闷啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你确定是同样的sql文么?
更多追问追答
追问
我很肯定,我是在原有的基础上修改的sql语句,如果sql语句有错误 那差别就不会是1那么小了
追答
你不把sql贴出来怎么帮你分析。差别不论大小。查一跟查一万没区别/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-21
展开全部
是什么数据库呀?
会不会是你这里, 或者客户那里, UPDATE 了一行数据? 但是没有 COMMIT;
会不会是你这里, 或者客户那里, UPDATE 了一行数据? 但是没有 COMMIT;
追问
oracle,应该不会,项目是通话系统,数据库里存的全是每天通话的信息,有日期限制,应该不会随便更新的
追答
我看了看你贴的 SQL 语句的片段。
看上去是 客户查询的是800行数据。 你这里查询是 799行数据。
这种情况下, 你可以尝试修改一下 SQL
select
count(1), MAX(t.segstart), MIN(t.segstart)
from
cms_call_history t
where
...
查看两边的 最大、最小的数据是否一致。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把两个查询的语句都贴出来看看
追问
sql太长只能给你部分
select count(1) from cms_call_history t
where t.split1 = 15 and t.call_disp = 3
and to_char(t.segstart,'hh24') = to_char(cch.segstart,'hh24')
and
t.segstart >= to_date('2013-5-15 00:00:00','yyyy-MM-dd HH24:mi:ss')
and
t.segstart <= to_date('2013-5-15 23:59:59','yyyy-MM-dd HH24:mi:ss')
追答
哪个是查出来800的?
哪个是查出来799的?
另外是什么类型的数据库?segstart这个字段是什么数据类型?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询