SQL数据集配置错误;大佬们帮忙看下要怎么改。能使用但是加载特别慢快卡死了

SQL("JDBC3", "select count(nc.student_id) from class_schedule_item csi LEFT JOIN named_classes nc ON csi.id=nc.class_schedule_id where nc.campus_status =1" +if(len(Q25)=0,' and 1=2',"csi.id='"+Q25+"'")  , 1)

这一部分没有报错
加上+ if(len(D4)=0,'and 1=2',"and left(csi.start_time,10)='"+D4+"'") 就报错


SQL("JDBC3", "select count(nc.student_id) from class_schedule_item csi LEFT JOIN named_classes nc ON csi.id=nc.class_schedule_id where nc.campus_status =1" +if(len(Q25)=0,' and 1=2',"csi.id='"+Q25+"'")+ if(len(D4)=0,'and 1=2',"and left(csi.start_time,10)='"+D4+"'")  , 1)


换成这个不报错

SQL("JDBC3", "select count(nc.student_id) from class_schedule_item csi LEFT JOIN named_classes nc ON csi.id=nc.class_schedule_id where nc.campus_status =1  and left(csi.start_time,10)="+D4+"" +if(len(Q25)=0,' and 1=2',"csi.id='"+Q25+"'") , 1)



Zero丶zero 发布于 2020-12-15 14:33 (编辑于 2020-12-15 17:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
luojian0323Lv7资深互助
发布于2020-12-15 14:49(编辑于 2020-12-15 17:26)

日期 有必要加上  like '%日期%' 吗?

直接用等于不行吗?

这是语法错误,sql 里 like 后面要加 '' 单引号。但是这里加上参数也需要单引号:   '"+参数+"'

SQL("JDBC3", "select count(nc.student_id) from class_schedule_item csi LEFT JOIN named_classes nc ON csi.id=nc.class_schedule_id where nc.campus_status =1" +if(len(Q25)=0,''," and csi.id='"+Q25+"'")+ if(len(D4)=0,''," and left(csi.start_time,10)='"+D4+"'"), 1)



你这里没有csi.start_time 这个 csi表别名


image.png

  • Zero丶zero Zero丶zero(提问者) 日期要加like的,数据库里面的字段是2017-09-16 08:30:00 这种格式的
    2020-12-15 15:06 
  • luojian0323 luojian0323 回复 Zero丶zero(提问者) 那你通过截取啊
    2020-12-15 15:13 
  • luojian0323 luojian0323 回复 Zero丶zero(提问者) left(日期,10)
    2020-12-15 15:13 
  • luojian0323 luojian0323 回复 Zero丶zero(提问者) like效率比较低
    2020-12-15 15:14 
  • Zero丶zero Zero丶zero(提问者) 回复 luojian0323 改成这种吗SQL(\"JDBC3\",\"select concat(id,\'\') from class_schedule_item where \" + if(len(E25) = 0, \'1=2\', \" class_id like \'%\" + E25 + \"%\' and \") + if(len(D4) = 0, \'1=2\', \"left(start_time,10 )=\'\" + D4 + \"\'\"), 1)
    2020-12-15 15:23 
最佳回答
1
shirokoLv6资深互助
发布于2020-12-15 14:54

估计字段是日期型吧。。like有问题吧

变成

 DATE_FORMAT(csi.start_time, '%Y-%m-%d')='2020-09-19'

  • Zero丶zero Zero丶zero(提问者) 改成这样吗 SQL(\"JDBC3\", \"select concat(id,\'\') from class_schedule_item where \" + if(len(E25) = 0, \'1=2\', \" class_id like \'%\" + E25 + \"%\' and \") + if(len(D4) = 0, \'1=2\', \" csi.start_time =\' + D4 + \'\"), 1)
    2020-12-15 15:02 
  • 3关注人数
  • 388浏览人数
  • 最后回答于:2020-12-15 17:26
    请选择关闭问题的原因
    确定 取消
    返回顶部