记一次伪*sql查询结果不一致的

Posted 小短腿要早睡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次伪*sql查询结果不一致的相关的知识,希望对你有一定的参考价值。

调试代码发现,两个操作最后都会调用同一个方法。传入的参数一致,查询结果却不一致。

直接说问题原因:我的两个操作是aop环绕通知先拿到传入参数以后,校验是否需要往另一张表中插入数据。第二种调用核心逻辑

Object retVal = pjp.proceed();

 后,才会把checkStatus置为1,所以在核心逻辑前查询的结果数是0。

 

两次分别打印的sql,和入参,以及结果

[DEBUG] [2017-10-25 20:48:27,888] [http-nio-8080-exec-1] [] - [==>  Preparing: select id, name, code, programCode, seriesCode, 
seriesName, showid, type, source, sourceID, cpName, cpCode, status, checkStatus, checkContent, downloadStatus, transcodeStatus,
overallBitRate, duration, bitRateMode, filePath, fileSize, fileFormat, playURL, videoFormat, videoBitRate, width, height, frameRate,
bitDepth, audioFormat, audioBitRate, samplingRate, scanType, md5, priority, cpContentID, cdnStatus, cdnDesc, domainCode, domainName,
offlineReason, checkTime, createTime, updateTime,transcodeId,videoType,isCompleted,completeReason from t_movie where type=0 and
programCode=? and checkStatus=1 and downloadStatus=2 ] [DEBUG] [2017-10-25 20:48:27,889] [http-nio-8080-exec-1] [] - [==> Parameters: 23000022017102510572300001(String)] [DEBUG] [2017-10-25 20:48:27,892] [http-nio-8080-exec-1] [] - [
<== Total: 1]
[DEBUG] [2017-10-25 20:50:08,957] [http-nio-8080-exec-9] [] - [==>  Preparing: select id, name, code, programCode, seriesCode, 
seriesName, showid, type, source, sourceID, cpName, cpCode, status, checkStatus, checkContent, downloadStatus, transcodeStatus,
overallBitRate, duration, bitRateMode, filePath, fileSize, fileFormat, playURL, videoFormat, videoBitRate, width, height, frameRate,
bitDepth, audioFormat, audioBitRate, samplingRate, scanType, md5, priority, cpContentID, cdnStatus, cdnDesc, domainCode, domainName,
offlineReason, checkTime, createTime, updateTime,transcodeId,videoType,isCompleted,completeReason from t_movie where type=0 and
programCode=? and checkStatus=1 and downloadStatus=2 ] [DEBUG] [2017-10-25 20:50:08,958] [http-nio-8080-exec-9] [] - [==> Parameters: 23000022017102510572300001(String)] [DEBUG] [2017-10-25 20:50:08,960] [http-nio-8080-exec-9] [] - [
<== Total: 0]

 











以上是关于记一次伪*sql查询结果不一致的的主要内容,如果未能解决你的问题,请参考以下文章

记一次 rr 和硬件断点解决内存踩踏问题

记一次mysql多表查询(left jion)优化案例

记一次sql优优化——left join不走索引问题

记一次sqlserver连接Oracle

记一次简单的sql注入测试

记一次生产SQL强势优化