下拉多选框加载慢的问题

我有一个下拉的多选框,多选的项是根据多个输入框的值作为SQL条件值进行查询。现在的问题是因为这条SQL效率比较低,导致在输入框输入的时候就卡死了。现在有没有办法在输入框输入的时候不触发sql查询,等到多选框下拉时在触发sql查询? 或者有其它更换的办法来处理? 注:SQL执行时间长目前暂时无法解决。

FineReport chenxq117 发布于 2022-2-17 08:42
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
Z~/Lv6初级互助
发布于2022-2-17 08:57
  • chenxq117 chenxq117(提问者) 感谢,在每个输入控件的 编辑后 事件中 增加 return false; 的脚本即可。这样,每次输入不会实时加载更新。等到下拉框下拉时才触发加载。
    2022-02-17 09:17 
  • chenxq117 chenxq117(提问者) 第一次加载时会触发,但输入框重新输入后不会更新加载。如何在下拉时触发加载呢?
    2022-02-17 09:24 
  • Z~/ Z~/ 回复 chenxq117(提问者) 你加了查询按钮吗,这个方法是点查询按钮来向SQL传入参数。
    2022-02-17 09:28 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-2-17 08:56(编辑于 2022-2-17 09:01)

把你那个很慢的sql改成类似这样,就是要前面都录入参数后,,才会执行这个sql。否则就不查询

语句的意思是要cs1  cs2  cs3都录入值的时候,然后把三个参数传到sql按条件查询出来数据,如果三个中有一个不为空都不会查数据

${

if (and(len(cs1)>0,len(cs2)>0 ,len(cs3)>0),

"select

*

from 订单

where 1=1

and 表中的字段1 in('"+ cs1 + "')"+

" and 表中字段2 in('"+ cs2 +"')"+

" and 表中字段3 in('"+ cs3 +"')",

"select * from 订单 where 1=0")}

或者这样

${

if (and(len(cs1)>0,len(cs2)>0 ,len(cs3)>0),

"select

*

from 订单

where 1=1

and 表中的字段1 in('"+ cs1 + "')"+

" and 表中字段2 in('"+ cs2 +"')"+

" and 表中字段3 in('"+ cs3 +"')",

"")}

你可以自己修改,哪几个条件是必须录入后,才查询,你就自己改一下就行了。就是哪几个参数必须录入后才查询不慢的。。前提是你的前面条件是要必录的。不然它永远为假

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-2-17 08:57

如果你的SQL参数允许为空,那无解

  • chenxq117 chenxq117(提问者) 空的问题我已经处理,执行sql的时间大概是5秒,但每个输入框都等待5秒左右就感受不好。想多选下拉时再触发。或者再增加个按钮手工触发也行。
    2022-02-17 09:09 
最佳回答
0
finereadLv6初级互助
发布于2022-2-17 09:01

sql无法优化这个不太行亚好像,根据的解决问题方案还是需要优化下sql的呢

  • 4关注人数
  • 591浏览人数
  • 最后回答于:2022-2-17 09:01
    请选择关闭问题的原因
    确定 取消
    返回顶部