找回密码
 立即注册

QQ登录

只需一步,快速开始

3w-gd

初级会员

17

主题

70

帖子

343

积分

初级会员

积分
343
3w-gd
初级会员   /  发表于:2022-3-24 17:29  /   查看:4016  /  回复:12
目前,数据查询时,在查询条件为空时,默认是全部显示数据。

1、每次查询都需要做一次额外的处理(必须要保证条件不为空,否则数据全出来了);
2、本应该有值的条件,如果在某种未知的情况下,条件判断的值为空,那么就相当于该条件判断作废,导致显示的数据不正确。

发现已经有好多人已经提过该问题了,我还是忍不住提一下,希望官方可以好好考虑考虑,或说说明一下,目前这种查询方式的好处。


参考其他格友的贴:https://gcdn.grapecity.com.cn/showtopic-98297-1-1.html

12 个回复

倒序浏览
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-24 17:39:36
沙发
您好,其实作为一个开发人员,您可以想一下,如果查询条件为空时,那么在SQL语句的层面在WHERE后面就不跟任何条件啦,这样是传统开发比较常见的方式。其实要实现您说的这种场景也是比较容易的,您可以参考一下这个帖子。查询条件为空时页面显示为空,有查询条件时显示相应条件数值。 - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)
回复 使用道具 举报
3w-gd
初级会员   /  发表于:2022-3-25 09:30:53
板凳
本帖最后由 3w-gd 于 2022-3-25 10:08 编辑
Howie.Sun 发表于 2022-3-24 17:39
您好,其实作为一个开发人员,您可以想一下,如果查询条件为空时,那么在SQL语句的层面在WHERE后面就不跟任 ...

可能我表述不准确,不是条件为空,是条件的值为空,比如表格数据中查看,判断条件 ID=A1(A1表示单元格)的数据,这个A1单元格的数据是其它页面传过来的,但是有可能其它未知原因传值失败,导致A1单元格的值为空,这样表格数据就全出来了。当然,可以查询先先对A1单元格进行空值判断,但是每次都要判断,条件个数少还好,如果条件个数多,加上业务逻辑比较复杂,有很多条件参数需要判断,这会导致有很多 if 判断。而且表格查询条件有不能进行判断,只能在页面单元格中进行预先判断,一是增加工作量,二是代码可读性差。为何官方会坚持这种机制,是有什么其它方面的优势吗?
回复 使用道具 举报
samta
高级会员   /  发表于:2022-3-25 11:35:18
地板
3w-gd 发表于 2022-3-25 09:30
可能我表述不准确,不是条件为空,是条件的值为空,比如表格数据中查看,判断条件 ID=A1(A1表示单元格) ...

因为的确有不少需要条件为空的时候全部查询的场景吧。
比如下拉框作为查询条件,然后空值框代表全部查询。
对于你这种情况,我觉得可以给传值的目标单元格一个默认值,比如传ID的单元格先赋值一个-1,这样其实还挺简单的吧。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-25 12:22:38
5#
本帖最后由 Howie.Sun 于 2022-3-25 12:24 编辑
3w-gd 发表于 2022-3-25 09:30
可能我表述不准确,不是条件为空,是条件的值为空,比如表格数据中查看,判断条件 ID=A1(A1表示单元格) ...

其实我觉得查询的本质就是在数据比较多的情况下,然后筛选出我们想要的数据。如果查询条件为空时,默认不显示数据的话,那么想要看全部的数据,还要给所有的查询条件赋值才可以呢。您想象一下,我们查字典的过程,肯定是在全部数据的基础上然后一步步筛选出我们想要查的内容,反过来的话,工作量是难以估计的。换句话说,展示全部的数据,是我们的出发点嘛,因为不同的使用人员(角色)想看的数据不一样,但是大家都有一个出发点就是在这全部的数据中进行寻找。
回复 使用道具 举报
3w-gd
初级会员   /  发表于:2022-3-30 15:11:01
6#
本帖最后由 3w-gd 于 2022-3-30 15:32 编辑
samta 发表于 2022-3-25 11:35
因为的确有不少需要条件为空的时候全部查询的场景吧。
比如下拉框作为查询条件,然后空值框代表全部查询 ...

查询全部数据的场景肯定也是有点,但是我觉得大部分场景下,通过筛选获取数据的情况也更多一点,而且从数据安全角度来说,查询数据要带有条件会更安全,可以参考常规数据库的查询方式。

当然目前的做法也是如你所说的,先在单元格中赋值-1的方式,但是如果在其它页面传值过来的就是个空值,那么这个-1不就被覆盖了么。
回复 使用道具 举报
3w-gd
初级会员   /  发表于:2022-3-30 15:20:36
7#
Howie.Sun 发表于 2022-3-25 12:22
其实我觉得查询的本质就是在数据比较多的情况下,然后筛选出我们想要的数据。如果查询条件为空时,默认不 ...

我不明白你说的反过来工作量会难于估量这句话,如果要全部查询,反正每个表默认都有ID,只要添加查询条件ID>0不就可以了吗?而且你说的不同角色查看不同的数据不一样,那还是要添加查询条件,这没有矛盾啊,反而是如果条件的值为空数据全出来了,所有角色都能查到全部数据了,这不是更大问题吗?。查询全部数据的场景肯定也是有点,但是我觉得大部分场景下,通过筛选获取数据的情况也更多一点,而且从数据安全角度来说,查询数据要带有条件会更安全,可以参考常规数据库的查询方式。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-30 17:53:04
8#
本帖最后由 Howie.Sun 于 2022-3-30 17:57 编辑
3w-gd 发表于 2022-3-30 15:20
我不明白你说的反过来工作量会难于估量这句话,如果要全部查询,反正每个表默认都有ID,只要添加查询条件 ...

感谢大佬的反馈,我们已将您的建议记录到需求列表中,需求编号:40928,后面还要经过开发组的统一安排和规划~!
回复 使用道具 举报
olookok活字格认证
论坛元老   /  发表于:2022-3-30 18:38:40
9#
如果按照你说的。当你想查询全部数据的时候,是不是又是个麻烦事。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-31 16:00:20
10#
olookok 发表于 2022-3-30 18:38
如果按照你说的。当你想查询全部数据的时候,是不是又是个麻烦事。

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部