首页 新闻 搜索 专区 学院

来大神,帮我分组

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-08-05 11:34

 现在有三条信息 字段user_pen_name有2条天蚕土豆信息 , 怎么让他显示一条天蚕土豆 然后跟上斗破苍穹 红颜恋两本书

活出你的霸气的主页 活出你的霸气 | 初学一级 | 园豆:23
提问于:2016-08-03 17:12
< >
分享
所有回答(7)
0

order by USER_PEN_NAME 

长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-08-03 17:30

然而只是个排序

支持(0) 反对(0) 活出你的霸气 | 园豆:23 (初学一级) | 2016-08-03 17:48
0

问题都没描述清楚,你可以发一下处理前数据样子,处理后数据样子,就明白了。。。

顾晓北 | 园豆:10055 (专家六级) | 2016-08-03 17:58
0

你不能交给后台处理么,非要在数据库语句里处理。

羊皮纸月亮 | 园豆:154 (初学一级) | 2016-08-03 18:05

那该怎么处理后台, 我这边后台查出来的数据用的是list<map>保存的传给json获取的是这样的我想得到的是user_pen_name名字一样的就不要重复在显示了

变成这样

{

user_pen_name:天蚕土豆

user_id:1

  {

    bookid:1

    bookname:斗破苍穹

  }

  {

    bookid 4

    bookname:红颜恋

  }

  //其它字段我省略了 大致就这样

}

支持(0) 反对(0) 活出你的霸气 | 园豆:23 (初学一级) | 2016-08-03 18:18

@活出你的霸气: 看你这个感觉你是要展示某个作者的信息什么的吧。

我感觉或许可以 将数据库查出来值后

如果你的json结构为

{

"user_pen_name":"天蚕土豆",

"user_id":1,

"books":[{

    "bookid":1,

    "bookname":"斗破苍穹"

  },

  {

    "bookid": 4,

    "bookname":"红颜恋"

  }]

}

你这里就将books对应的value里存放一个List<书>吧。

 

支持(0) 反对(0) 羊皮纸月亮 | 园豆:154 (初学一级) | 2016-08-03 18:38

@羊皮纸月亮: 

public String collect(@RequestParam(value="userId",required=false)Long userid,
@RequestParam(value="bookType",required=false)Long booktype){
 JSONObject json=new JSONObject();
 Map<String, Object> condition=new HashMap<String, Object>();
 try {
    if(userid !=null){
    condition.put("userid", userid);
  }
  if(booktype!=null){
    condition.put("booktype", booktype);
  }

  List<Map<String, Object>> map=bcsrvice.list(condition);

//这个map已经拿到内容就是上面的图片内容 能帮我实现下面内容吗?感觉应该分组可以 菜鸟不会

    json.put("status", 1000);
    json.put("message", "");
  if(map.size() !=0){
    json.put("collect", map);
  }else{
    json.put("exec", "未查到信息,系统异常!!!!!");
  }
 } catch (Exception e) {
  e.printStackTrace();
 }
  return json.toJSONString();
}

支持(0) 反对(0) 活出你的霸气 | 园豆:23 (初学一级) | 2016-08-04 09:48
0

很明显,数据库的设计不符合范式要求。

| 园豆:770 (小虾三级) | 2016-08-03 23:08
0

很明显 孩子 你想多了,数据库查询很简单,以user_pen_name为标准(要去重复),获得name和id就行了,然后后台处理:

第一个方法  就是去重查询user_pen_name就行了,如"user_pen_name":"天蚕土豆",、"user_id":1,获得这两个字段就醒了,跳转第二个方法用递归就行了  递归循环体中加个books 就OK了。

个人建议你参考tree

℃7O八落~的点滴 | 园豆:181 (初学一级) | 2016-08-04 09:00

public String collect(@RequestParam(value="userId",required=false)Long userid,
@RequestParam(value="bookType",required=false)Long booktype){
 JSONObject json=new JSONObject();
 Map<String, Object> condition=new HashMap<String, Object>();
 try {
  if(userid !=null){
    condition.put("userid", userid);
  }
  if(booktype!=null){
    condition.put("booktype", booktype);
  }

  List<Map<String, Object>> map=bcsrvice.list(condition);

//这个map已经拿到内容就是上面的图片内容 能帮我实现我说的内容吗?感觉应该分可以                 json.put("status", 1000);

    json.put("message", "");
  if(map.size() !=0){
    json.put("collect", map);
  }else{
    json.put("exec", "未查到信息,系统异常!!!!!");
  }
 } catch (Exception e) {
  e.printStackTrace();
 } 
  return json.toJSONString();
}

支持(0) 反对(0) 活出你的霸气 | 园豆:23 (初学一级) | 2016-08-04 09:50
0

把同一个作者的信息放到一个list里面然后遍历这个list把书名信息拼到一起输出不就行了。。。用sql不知道能不能搞定,但是肯定很麻烦何必呢

初学者max | 园豆:257 (菜鸟二级) | 2016-08-05 14:38
0

给你个思路,动态行转列能实现这个功能,你的表结构,如你现在这个需求不符。建议还是重新换表结构。把作者和书分开。

jgig11 | 园豆:338 (菜鸟二级) | 2016-08-15 09:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册