public Integer count(Member me) {
String name=me.getUname();
Integer inte = new Integer(0);
String sql="SELECT COUNT(recommended) FROM member_recovery_record me LEFT JOIN member ON member.`id`=me.`referrer`" +
"WHERE me.`referrer` IN (SELECT id FROM member WHERE member.`uname`='name')";
List<Object> list=memberRecoveryRecordDao.createSqlQuery(sql).list();
if(list!=null && list.size()>0){
Object obj=list.get(0);
inte=new Integer(obj.toString());
}
return inte;
}
圈住的是变量ID值吗,ID是什么类型的?
是不是这边少了一个空格符。
referrer是这张表中的一个字段,它的值是后面子条件member表中的id
member.`uname`='name')" ,name 是写死的么? 先查查 member 里面是不是有对应的 id 和 name
name不是写死的,从客户端获取到的,数据库表中有对应的信息
@你怎敢左右我的心情: 你写成变量就行. 用拼接方式 或者放个占位符. 你可以先测试一下,子查询是否能查出来.
@吃饭了吗: 把这里的name写成表中估计值,是可以执行成功的,动态的获取就会出错,也是醉了。。。。
@你怎敢左右我的心情:确保 name 变量 没有空格 , 然后, 你把 那个 id 放到 ,上面的 主 sql 的 in 里面.看看能查到不
这样写能取到变量莫,用string.Format试试啊
可以取到
这里name取成字符串name了,而不是变量!
这里的name改成还是没取到,这里的变量要怎么取?
@你怎敢左右我的心情:
你把name改成me.getUname()是怎么改的?
'name' to 'me.getUname()' ?
你试试这么改:
'name' to '"+name+"'
或者
'name' to '"+me.getUname()+"'
@请叫我头头哥: thank you
@你怎敢左右我的心情: 如果问题已经解决就请结贴采纳答案吧= = 没解决可以继续追问!
少了一个步骤,你用的是原生sql
少了一个步骤?
IDE智能一点的话,你把鼠标放到String sql="SELEC这句话的sql变量那里,IDE会弹出窗口把拼接好的sql展示给你