sql关于对一个字段同时满足多条件判断来筛选查询

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

表所有数据

查询userName为abc或xyz的


以下为本菜鸟项目中遇到的问题:

背景:

/**
 * wangjie 180629
 * 
 * 学生需要查询四种可能的消息
 * 1.班级管理员发来的,根据自身的学籍号条件查询
* 2.省级管理员发送区县全部的,根据接收对象地区号作为条件查询
 * 3.省级管理员发送全省全部的,根据接收对象类型为”all”查询
 * 4.省级管理员发送全市全部的,根据接收对象市id查询
 * 
 * */

例子

问个sql语句问题,比如如何查出

name为小红的

或者

name为小黑并且sex为男的

以上两个条件拼接一条语句写出来 

	/**	 * 接收到的学习纪实--分页	 * @param pageNumber	 * @param pageSize	 * @param map	 * @return	 */	@Override	public Pagenate<StudyRecordTableEntity> pageforAcceptStudyTableEntity(			int pageNumber, int pageSize, Map<String, String> map) {				//		map传过来的值:{classCode=5051, acceptcode=15040602011, titles2=, role=03, pointId=0482, cityCode=3704, classAdminCode=null, ydrq12=, ydrq22=}		// TODO Auto-generated method stub		String titles2=map.get("titles2");		//标题		String ydrq12=map.get("ydrq12");		//开始日期		String ydrq22=map.get("ydrq22");		//结束日期		String acceptcode=map.get("acceptcode");//接收人编号				/**		 * wangjie 180629		 * 		 * 学生需要查询四种可能的消息		 * 1.班级管理员发来的,根据自身的学籍号条件查询		 * 2.省级管理员发送区县全部的,根据接收对象地区号作为条件查询		 * 3.省级管理员发送全省全部的,根据接收对象类型为"all"查询		 * 4.省级管理员发送全市全部的,根据接收对象市id查询		 * 		 * *///		接收区县---区县id		String point_id = map.get("pointId");//		接收市id		String city_id = map.get("cityCode");		Session session = super.getHibernateTemplate().getSessionFactory().getCurrentSession();		StringBuffer sb=new StringBuffer();				// 学员接收信息		sb.append(" from StudyRecordTableEntity srt,StudyRecAcceptRoleEntity accept,SysAccCount account where srt.id=accept.sturec_code and account.accCode=srt.sendopt ");		sb.append(" and accept.accrole='03' and srt.flag='1' ");		sb.append(" and (  accept.send_type='single' and ( accept.accept_range like '%"+acceptcode+"%' or accept.accept_range like '%"+point_id+"c%' or accept.accept_range like '%"+city_id+"%' ) ");		sb.append(" or accept.send_type='all' ) ");				if(titles2!=null&&!"".equals(titles2)){			sb.append(" and srt.titles like '%"+titles2+"%' ");		}		if(ydrq12!=null&&!"".equals(ydrq12)){			sb.append(" and srt.sdate >= '"+ydrq12+"' ");		}		if(ydrq22!=null&&!"".equals(ydrq22)){			Calendar calendar=new GregorianCalendar();			calendar.setTime(DateUtils.parseDate(ydrq22, "yyyy-MM-dd"));			calendar.add(calendar.DATE, 1);			sb.append(" and srt.sdate < '"+DateUtils.formateDate(calendar.getTime(), "yyyy-MM-dd")+"' ");		}		String hqlCnt="select count(0) "+sb.toString();		String hql="select srt "+sb.toString()+" order by srt.sdate desc,srt.sturec_type asc ";		System.out.println("拼接的sql---->"+hql);		Query queryCnt=session.createQuery(hqlCnt);		Query query=session.createQuery(hql);		return super.findByPage(pageNumber, pageSize, queryCnt, query);	}

后台是hql语句查询的,刚开始没想起来,急的我差点写四个sql分别查询

一个同胞的:

点这里可以跳转到人工智能网站

发表评论