首页 新闻 赞助 找找看

sql语句拼接哪块出错了,为什么list一直是0

0
[待解决问题]

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;
    }

你怎敢左右我的心情的主页 你怎敢左右我的心情 | 菜鸟二级 | 园豆:210
提问于:2015-09-18 13:54
< >
分享
所有回答(6)
0

圈住的是变量ID值吗,ID是什么类型的?

泡沫_之夏 | 园豆:110 (初学一级) | 2015-09-18 14:20

是不是这边少了一个空格符。

支持(0) 反对(0) 泡沫_之夏 | 园豆:110 (初学一级) | 2015-09-18 14:25

referrer是这张表中的一个字段,它的值是后面子条件member表中的id

0
member.`uname`='name')"   ,name 是写死的么? 先查查 member 里面是不是有对应的 id 和 name
吃饭了吗 | 园豆:204 (菜鸟二级) | 2015-09-18 14:34

name不是写死的,从客户端获取到的,数据库表中有对应的信息

@你怎敢左右我的心情: 你写成变量就行. 用拼接方式 或者放个占位符.   你可以先测试一下,子查询是否能查出来.

支持(0) 反对(0) 吃饭了吗 | 园豆:204 (菜鸟二级) | 2015-09-18 14:47

@吃饭了吗: 把这里的name写成表中估计值,是可以执行成功的,动态的获取就会出错,也是醉了。。。。

@你怎敢左右我的心情:确保 name 变量 没有空格 , 然后, 你把 那个 id 放到 ,上面的 主 sql 的 in 里面.看看能查到不

支持(0) 反对(0) 吃饭了吗 | 园豆:204 (菜鸟二级) | 2015-09-18 15:15
0

这样写能取到变量莫,用string.Format试试啊

小妖米米 | 园豆:10 (初学一级) | 2015-09-18 16:52

可以取到

0

这里name取成字符串name了,而不是变量!

请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-09-18 17:17

这里的name改成还是没取到,这里的变量要怎么取?

@你怎敢左右我的心情: 

你把name改成me.getUname()是怎么改的?

'name' to 'me.getUname()'  ?

你试试这么改:

'name' to '"+name+"' 

或者

'name' to '"+me.getUname()+"' 

支持(0) 反对(0) 请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-09-18 18:14

@请叫我头头哥: thank you

@你怎敢左右我的心情: 如果问题已经解决就请结贴采纳答案吧= =   没解决可以继续追问!

支持(0) 反对(0) 请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-09-18 22:53
0

少了一个步骤,你用的是原生sql

snowfog | 园豆:90 (初学一级) | 2015-09-23 16:20

少了一个步骤?

0

IDE智能一点的话,你把鼠标放到String sql="SELEC这句话的sql变量那里,IDE会弹出窗口把拼接好的sql展示给你

之奇一昂 | 园豆:1421 (小虾三级) | 2015-10-13 10:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册