动态sql语句子查询作为条件的时候无效,在workbench中则运行正常

#sql("listForDoctor")
select o.*,b.member_name,b.header,
 (select content from t_qanswers_communication where qanswer_id=o.id ORDER BY id asc limit 1) as first_content
from t_qanswers_order o
 left join t_member b on o.member_id=b.id

 #for(x : cond)
   #(for.index == 0 ? "where": "and")
    #if(x.key=="status")
     o.status in (5,6)
    #else if(x.key=="newStatus")
     (o.status=1 or (o.status=4
 and (select type_code from t_qanswers_communication where  qanswer_id=o.id  ORDER BY id desc limit 1)='MEMBER'
))
    #else if(x.key=="goingStatus")
    o.status=4
 and (select type_code from t_qanswers_communication where  qanswer_id=o.id  ORDER BY id desc limit 1) ='DOCTOR'
    #else
     #(x.key) #para(x.value)
    #end
#end
 order by o.id desc
#end

执行代码如下
select o.*,b.member_name,b.header,
 (select content from t_qanswers_communication where qanswer_id=o.id ORDER BY id asc limit 1) as first_content
from t_qanswers_order o
 left join t_member b on o.member_id=b.id
   where
     o.doctor_id=200207023   and
    o.status=4
 and (select type_code from t_qanswers_communication where  qanswer_id=o.id  ORDER BY id desc limit 1)='DOCTOR'
 order by o.id desc
 
 该条件无效
 (select type_code from t_qanswers_communication where  qanswer_id=o.id  ORDER BY id desc limit 1)='DOCTOR'
 不知道如何解决了,看到的朋友帮忙解答一下
 workbench 下运行结果和项目结果对比

1585234715891.jpg

1585234925219.jpg

调试获取sql

select o.*,b.member_name,b.header,

 (select content from t_qanswers_communication where qanswer_id=o.id ORDER BY id asc limit 1) as first_content

from t_qanswers_order o

 left join t_member b on o.member_id=b.id

   where

     o.doctor_id=?   and

   (o.status=4

 and (select type_code='DOCTOR' from t_qanswers_communication where  qanswer_id=o.id  ORDER BY id desc limit 1) =true)

 order by o.id desc

参数:

  paralist size = 1

  value=200207023

评论区

JFinal

2020-03-27 20:54

单步调试,得到 SqlPara 对象以后,检查一下它里头的 String sql 与 List para 这两个对象,然后在 workbench 测试一下这个 sql 是否能正常工作

jfinal 的 arp ,并不会去干涉及 sql 的执行,是直接扔给 jdbc 去执行的

qin

2020-03-28 08:31

昨天sql语句正常,参数也没看到问题 , workbench正常

qin

2020-03-28 08:32

@JFinal 调试语句在workbench内运行正常,