自动分表-where拼接条件问题 返回

SqlSugar
16 126

用的是最新版的Sugar-5.0.9

image.png

生成的SQL如下:

image.png

热忱回答16

  • 你时间错了 ,你只要 17号少一秒就不会生成2个SQL

    0 回复
  • 你的时间是16-17,而不是 16-16:59.59

    0 回复
  • 我的查询时间段是:2022-06-16 00:00:00~2022-06-17 23:59:59

    我说的不是生成2个sql的问题,是输出的sql  where条件里不应该有时间的判断

    image.png


    0 回复
  • @fate sta

    代码里并没有时间的where条件,用了splitTable 输出的sql  却带上了时间区间的判断 

    image.png


    0 回复
  • 这个功能是连WHERE一起用的

    0 回复
  • 选表并且加WHERE

    0 回复
  • Db.Queryable<SplitTestTable>()
                   .Where(it => it.Id==data.Id)
                    .SplitTable(tas => tas.Where(y=>y.Date>=datetime))//表名包含2019的表
                    .ToList();


    这种只是选表,不会加where

    0 回复
  • @fate sta

    加上where 是否有那个必要呢 如果本身我就有时间条件 那么输出的where里就会重复添加了,如下图

    image.png

    自动拼时间:当数据量百万级以上就真的很慢

    splittable(starttime,endtime)这两个时间就是想告诉你 找哪些表,没有必要拼到where里

    还请考虑一下,我说的情况哈

    0 回复
  • 有条件和没条件都支持,你用个先便你

    0 回复
  • @fate sta:有条件的 不合理啊,支持也要合理才行吧,这明显会影响性能的

    0 回复
  • @矿泉水:都说了支持2种了,并且不影响性能,条件越多性能只会越高,并不会像你说的条件越多影响性能

    0 回复
  • 你要用A就用A,你要用B就用B 没什么好说的

    0 回复
  • @fate sta

    我理解你的意思 

    我的想法是,A B最好都合理一些,我只是提出使用后的真实感受,接不接受,改不改是你们的事

    0 回复
  • @矿泉水:不是不接受这个功能就是,其他用户提出来的,不是我造出来的,所以你要用A就用A功能,你要用B就用B功能

    0 回复
  • 最开始设计就只是选表的,后面用户提出来选表同时应该自动加上Where而不是用户在手动加Where

    0 回复
  • OK

    0 回复