今天碰到了个问题,就是我的sql语句在数据库查询的结果是空的,但是我吧语句赋值出来。直接去数据库查询确可以查询到数据
如下:
==> Preparing: SELECT top 300 Id, FullName,MethodName,Message FROM [dbo].[TrackLog] WHERE Message like 'http://mobileapi.centanet.com%' and FullName like 'MobileApi.CentaNet.Mobile.Model.Request%' and FullName like concat('%',?,'%') ORDER BY Id desc
==> Parameters: GetRailWayPostsRequest (String)
<== Total: 0
当我把语句赋值到navicat的时候,却能查询到数据
SELECT top 300 Id, FullName,MethodName,Message FROM [dbo].[TrackLog] WHERE Message like 'http://mobileapi.centanet.com%' and FullName like 'MobileApi.CentaNet.Mobile.Model.Request%' and FullName like concat('%','GetRailWayPostsRequest','%') ORDER BY Id desc
然后我觉得这个问题很奇怪,在网上找到了一篇博客
他这个可能可以解决问题但是解决不了我的问题。然后我又试了下其他正常的语句。一个字眼一个字眼的比较。终于发现,我的问题是因为多了个空格导致的

总结:当出现这个情况,一般可能是特殊字符导致的,我这个就是因为多了个空格。controller接受参数的时候可以考虑将将字符两边的空格去掉。避免这种问题。一不小心十几分钟就被消耗了
本文探讨了一位开发者遇到的SQL查询返回空结果的问题,通过对比发现是由于SQL语句中多了一个空格所致。文章强调了在处理SQL语句时,特别是从控制器接收参数时,去除字符串两端空格的重要性,以避免类似错误。
3842

被折叠的 条评论
为什么被折叠?



