动态查询的执行结果有差异 返回

SqlSugar 沟通中
16 495
该叫什么 fry 发布于2025/11/17
悬赏:0 飞吻

表数据如下:

image.png

1:IsNot条件查询

{

  "pageIndex": 1,

  "pageSize": 10,

  "conditions": [

    {

      "fieldName": "title",

      "conditionalType":"IsNot",

      "fieldValue": "小说"

    }

  ]

}


Sql语句如下:image.png

查询结果如下:

image.png


问题:为什么Title为null的没有查出来?


热忱回答16

  • fate sta fate sta VIP0
    2025/11/17

    这个我优化一下,之前只处理了 is not null。没考虑 <> 'a' or  is null情况

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta:还有个问题,如下:

    image.png



    情况2 是对的,情况1测不出来,参数如下:(情况1和类型Equal有区别吗?这个容易引起歧义)

    image.png

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta:空串和null都加一下

    0 回复
  • fate sta fate sta VIP0
    2025/11/17

    SqlSugarCore 5.1.4.208

    更新这个版本,还有问题发新的用例

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate staIsNot这个可以了,看一下EqualNull 中的情况1

    0 回复
  • fate sta fate sta VIP0
    2025/11/17

    EqualNull  是1有什么问题吗?

    0 回复
  • fate sta fate sta VIP0
    2025/11/17

    image.png

    目前逻辑没有问题

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta:如下:

    情况1 value不等于null       =======>    title='小说'

    image.png

    结果:

    image.png

    0 回复
  • fate sta fate sta VIP0
    2025/11/17

    没有重现你说的,你AOP看一下SQL是不是查询的列写错了

    image.png

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta

    稍等,我再试试

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta:ok,这个问题可以了,null的话,空串查不出来

    0 回复
  • fry fry VIP0
    2025/11/17

    @fate sta:还有个问题,索引的优化问题,如下Sql:

    SELECT `Title`,`Content`,`Remark`,`OpeningDate`,`Years`,`TenantId`,`PlatformId`,`CreateId`,`CreateName`,`CreateTime`,`UpdateId`,`UpdateName`,`UpdateTime`,`Id`,`IsDeleted` 

    FROM `Agreement`   

    WHERE   `title`   IS   NULL   AND NOT ( `IsDeleted`=1 )   AND ( `PlatformId` = '08dd9e7f-021f-4f9f-8e2d-9c18b71e4a77' )  

    ORDER BY `Id` Desc LIMIT 0,10 


    条件放到了第一位,mysql的索引优化问题可以考虑一下,目前ref的级别也不错,但是按道理 title is null有可能使 title这个列的索引查询失效,能不能统一放放到后面,

    WHERE    NOT ( `IsDeleted`=1 )   AND ( `PlatformId` = '08dd9e7f-021f-4f9f-8e2d-9c18b71e4a77' )   and `title` IS   NULL


    image.png


    0 回复
  • fate sta fate sta VIP0
    2025/11/17

    描述清楚问题这个条件哪来的

    0 回复
  • fry fry VIP0
    2025/11/18

    @fate sta:调试生成的

    0 回复
  • fate sta fate sta VIP0
    2025/11/18

    不清楚条件哪来的,过滤器还是where 最好有DEMO

    0 回复
  • fry fry VIP0
    2025/11/18

    @fate sta是生成的最优Sql问题,这个先不管了

    0 回复