order by USER_PEN_NAME
然而只是个排序
问题都没描述清楚,你可以发一下处理前数据样子,处理后数据样子,就明白了。。。
你不能交给后台处理么,非要在数据库语句里处理。
那该怎么处理后台, 我这边后台查出来的数据用的是list<map>保存的传给json获取的是这样的我想得到的是user_pen_name名字一样的就不要重复在显示了
变成这样
{
user_pen_name:天蚕土豆
user_id:1
{
bookid:1
bookname:斗破苍穹
}
{
bookid 4
bookname:红颜恋
}
//其它字段我省略了 大致就这样
}
@活出你的霸气: 看你这个感觉你是要展示某个作者的信息什么的吧。
我感觉或许可以 将数据库查出来值后
如果你的json结构为
{
"user_pen_name":"天蚕土豆",
"user_id":1,
"books":[{
"bookid":1,
"bookname":"斗破苍穹"
},
{
"bookid": 4,
"bookname":"红颜恋"
}]
}
你这里就将books对应的value里存放一个List<书>吧。
@羊皮纸月亮:
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();
}
很明显,数据库的设计不符合范式要求。
很明显 孩子 你想多了,数据库查询很简单,以user_pen_name为标准(要去重复),获得name和id就行了,然后后台处理:
第一个方法 就是去重查询user_pen_name就行了,如"user_pen_name":"天蚕土豆",、"user_id":1,获得这两个字段就醒了,跳转第二个方法用递归就行了 递归循环体中加个books 就OK了。
个人建议你参考tree
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();
}
把同一个作者的信息放到一个list里面然后遍历这个list把书名信息拼到一起输出不就行了。。。用sql不知道能不能搞定,但是肯定很麻烦何必呢
给你个思路,动态行转列能实现这个功能,你的表结构,如你现在这个需求不符。建议还是重新换表结构。把作者和书分开。