精华内容
下载资源
问答
  • MySQL之where查询

    千次阅读 2019-05-10 13:50:08
    一、定义 使用where子句对表中的数据筛选,并将筛选结果输出。 二、语法 select 字段列表 from 表名 where语句 ; 三、分类 1、按关系运算符筛选 ...select name from student where name='张三' ## 查询na...

    一、定义

    使用where子句对表中的数据筛选,并将筛选结果输出。

    二、语法

    select  字段列表 from 表名 where语句 ;

    三、分类

    1、按关系运算符筛选

    • 等于 =
    • 大于 >
    • 大于等于>=
    • 小于<
    • 小于等于<=
    • 不等于!=

    例子如下

    select name from student where name='张三'    ## 查询name等于张三的数据
    select name from student where name!='张三'  ## 查询name不等于张三的数据
    select name from student where age>20        ## 查询age大于20的数据

    2、逻辑运算符

    • and
    • or
    • not

    例子如下

    select * from student where age>10 and name='张三'  ##查询age大于10且name等于"张三"的数据。
    select * from student where not name='张三'        ##查询name不等于"张三"的数据。
    

    3、范围查询

    • in
    • between 大数值 and 小数值

    例子如下

    select * from student where age in (10,11)  ##查询age等于10或者11的数据。
    
    select * from student where age=10 or age=11  ## 与上面语句等效。
    
    select * from student where age between 10 and 24 ##查询age在10到24之间的数据,包含边界值。

    4、空判断

    select * from student where address is null       ##查询address为null的数据
    select * from student where address is not null   ##查询address不为null的数据

    5、模糊查询

    • like
    • %表示任意多个字符(包括0)
    • _表示任意一个字符
    • escape:取消%或_字符的通配符特性

    例子如下

    select * from student where name like '王%'   ##查询name中姓张的数据。
    select * from student where name like '张_    ##查询name中两个字姓张的数据。
    select * from student where name like '%A%%' escape 'A'  ##查询name中含有"%"的数据

     

    展开全文
  • MyBatis动态sql_where查询条件

    万次阅读 2017-11-25 16:24:17
    MyBatis动态sql_where查询条件 EmployeeMapperDynamicSQL.java package com.cn.mybatis.dao; import java.util.List; import com.cn.zhu.bean.Employee; public interface EmployeeMapperDynamicSQL ...

    MyBatis动态sql_where查询条件



    EmployeeMapperDynamicSQL.java

    package com.cn.mybatis.dao;
    
    import java.util.List;
    
    import com.cn.zhu.bean.Employee;
    
    public interface  EmployeeMapperDynamicSQL {
    	//<!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 -->
    	public List<Employee> getEmpsByConditionIf(Employee  employee);
    	
    }
    

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.cn.mybatis.dao.EmployeeMapperDynamicSQL">
    	<!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 -->
    	<!--public List<Employee> getEmpsByConditionIf(Employee  employee);  -->
    	<select id="getEmpsByConditionIf" resultType="com.cn.zhu.bean.Employee">
    		select * from tbl_employee  where 
    			<!--
    				test 判断表达式(OGNL) C:if test OGNL参照ppt或者官方文档 c:if test 从参数中取值进行判断
    				遇见特殊符号应该去写转义字符
    			-->
    			<if test="id!=null">
    				 id=#{id}
            </if>
    			<if test="lastName!=null && lastName!=""">
    				and last_name like #{lastName} 
            </if>
    			<if test="email !=null  and email.trim()!=""">
    				and email=#{email} 
            </if>
    			<!-- ognl 会进行字符串和数字的转换   "0"==0 -->
    			<if test="gender==0  or  gender==1">
    				and gender=#{gender}
            </if>
    	</select>
    </mapper>
    测试程序

    @Test
    	public void  testDynamicSql() throws  IOException{
    		SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
    		SqlSession openSession=sqlSessionFactory.openSession();
    		try {
    			EmployeeMapperDynamicSQL   mapper=	openSession.getMapper(EmployeeMapperDynamicSQL.class);	
    			Employee employee=new Employee(3, "%h%", "zhu@qq.com", null);
    			List<Employee>  emps=  mapper.getEmpsByConditionIf(employee);
    			for(Employee emp: emps)
    				System.out.println(emp);
    			
    		} catch (Exception e) {
    			// TODO: handle exceptio
    			e.printStackTrace();
    		}
    
    	}
    测试结果



    这样就能正常查询数据,如果当主键为空的时候,就会报错,那么怎么解决呢?


    会多出一个  and

    第一种方法: 在where 后面加上  where  1=1

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.cn.mybatis.dao.EmployeeMapperDynamicSQL">
    	<!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 -->
    	<!--public List<Employee> getEmpsByConditionIf(Employee  employee);  -->
    	<select id="getEmpsByConditionIf" resultType="com.cn.zhu.bean.Employee">
    		select * from tbl_employee	
    		where 1=1
    			<!--
    				test 判断表达式(OGNL) C:if test OGNL参照ppt或者官方文档 c:if test 从参数中取值进行判断
    				遇见特殊符号应该去写转义字符
    			-->
    			<if test="id!=null">
    				 id=#{id}
            </if>
    			<if test="lastName!=null && lastName!=""">
    				and last_name like #{lastName} 
            </if>
    			<if test="email !=null  and email.trim()!=""">
    				and email=#{email} 
            </if>
    			<!-- ognl 会进行字符串和数字的转换   "0"==0 -->
    			<if test="gender==0  or  gender==1">
    				and gender=#{gender}
            </if>
    	</select>
    </mapper>

    第二种解决方式: 用where标签  <where >  </where>

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.cn.mybatis.dao.EmployeeMapperDynamicSQL">
    	<!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 -->
    	<!--public List<Employee> getEmpsByConditionIf(Employee  employee);  -->
    	<select id="getEmpsByConditionIf" resultType="com.cn.zhu.bean.Employee">
    		select * from tbl_employee
    		<where>
    			<!--
    				test 判断表达式(OGNL) C:if test OGNL参照ppt或者官方文档 c:if test 从参数中取值进行判断
    				遇见特殊符号应该去写转义字符
    			-->
    			<if test="id!=null">
    				 id=#{id}
            </if>
    			<if test="lastName!=null && lastName!=""">
    				and last_name like #{lastName} 
            </if>
    			<if test="email !=null  and email.trim()!=""">
    				and email=#{email} 
            </if>
    			<!-- ognl 会进行字符串和数字的转换   "0"==0 -->
    			<if test="gender==0  or  gender==1">
    				and gender=#{gender}
            </if>
    		</where>
    	</select>
    </mapper>

    测试程序

    @Test
    	public void  testDynamicSql() throws  IOException{
    		SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
    		SqlSession openSession=sqlSessionFactory.openSession();
    		try {
    			EmployeeMapperDynamicSQL   mapper=	openSession.getMapper(EmployeeMapperDynamicSQL.class);	
    			Employee employee=new Employee(null, "%h%", null, null);
    			List<Employee>  emps=  mapper.getEmpsByConditionIf(employee);
    			for(Employee emp: emps)
    				System.out.println(emp);
    			// 查询的时候如果某些条件没带可能sql拼装会有问题
    			// 1.给where 后面加上1=1,以后的条件都and  
    			//2.  mybatis 使用where 标签将所有的查询条件包括在内。
    			// mybatis 就会将where标签后面第一个and 去掉
    			// where只会去掉第一个多出来的and 或者  or
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    
    	}


    测试结果





                        // 查询的时候如果某些条件没带可能sql拼装会有问题
    // 1.给where 后面加上1=1,以后的条件都and  
    //2.  mybatis 使用where 标签将所有的查询条件包括在内。
    // mybatis 就会将where标签后面第一个and 去掉
    // where只会去掉第一个多出来的and 或者  or


    更多请关注微信公众号:


    展开全文
  • 1、WHERE 查询条件 比较运算符及其含义 比较运算符 含义 比较运算符 含义 = 等于 &lt;&gt; 不等于 &lt; 小于 != 不等于 &gt; 大于 !&gt; ...

     

    1、WHERE 查询条件

    比较运算符及其含义
    比较运算符含义比较运算符含义
    =等于<>

    不等于

    <小于!=不等于
    >大于!>不大于
    >=大于等于!<不小于
    <=小于等于  

     

     

     

     

     

     

     

    2、NOT(非)、OR(或)、AND(和)

    优先级比较 NOT > AND > OR

    3、范围查询----BETWEEN

    SELECT * FROM TABEL WHERE 生产日期 BETWEEN '2001-01-01' AND '2019-02-21';

    (从表中查询生产日期在'2001-01-01' AND '2019-02-21'之间的所有列)

    4、范围查询----IN(IN 后面必须要跟枚举的列值表)

    语法格式:

    SELECT * 

    FROM TABLE_NAME

    WHERE COLUMN_NAME IN(VALUE1,VALUE2,VALUE3)

    5 、模糊查询----LIKE

    SELECT * 

    FROM TABLE_NAME

    WHERE COLUMN_NAME LIKE STRING;

    其中COLUMN_NAME必须是字符串类型。

    也可以搭配通配符来使用:

           1、通配符 ‘%’ (它可以与任意的字符串相匹配)

           2、“_”  (它可以与任意的单字符相匹配)

           3、“[ ]” (用于实现由[ ]指定范围内的单字符相匹配)

           4、“[^]” (与第三条相反的效果--排除)

    6、空值查询----IS

    查询一个字段的值是不是NULL,只能使用IS

    SELECT * FROM TABLE_NAME WHERE COLUMN_NAME IS NULL;

    7、排序查询----ORDER BY

    DESC(降序)

    ASC(升序)

    8、多列排序查询

    ORDER BY COLUMN_NAME1 DESC, COLUMN_NAME2 ASC

    排序过程中先按照第列的排序方式、第一列遇到相同的数据时再按照第二列排序进行排序。

    9、分组查询----GROUP BY 和 HAVING

    1》分组查询通常和库函数COUNT()结合使用

    2》HAVING 辅助选项

    实例:

    SELECT *

    FROM TALBE

    GROUP BY S_SPECIALITY

    HAVING COUNT(*) >=10 

     

       

     

    展开全文
  • where查询 我们可以一次性添加多个查询条件,再调用get方法即可返回满足指定查询条件的记录。用法如下: db.collection('user').where({ _id: '2d1104975e9fb75400c51e3d13fdebe5' }) .get({ success: (res) =&...

    用法

    where查询

    我们可以一次性添加多个查询条件,再调用get方法即可返回满足指定查询条件的记录。用法如下:

    db.collection('user').where({
        _id: '2d1104975e9fb75400c51e3d13fdebe5'
    })
    .get({
        success: (res) => {
            if (res.data.length == 0){
                console.log('没有数据唉~')
            }else{
                console.log(res.data)
            }
        }
    })

    注意:where查询结束后,就算没有值,他也会返回一个空的数组,所以需要提前判断一下!

    doc查询

    获取一个记录的数据,当我们有一个id为2d1104975e9fb75400c51e3d13fdebe5的在集合user上的记录,则我们可以通过该记录调用get方法获取相关数据。用法如下:

    db.collection('user').doc('2d1104975e9fb75400c51e3d13fdebe5')
    .get({
      success: (res) => {
        console.log(res.data)
      }
    })

    区别

    使用where根据查询条件,查询出来的数据结果是对象数组;使用doc查询出来的是一个对象

    展开全文
  • 原本想通过where查询,如果usr_info中包含某个username的话,就提示查找到该用户。一开始没反应过来,在小程序云开发的数据库查询中,where({username:"派大星"}) 如果派大星用户名不存在的话,也会得到一个集合,只...
  • count(*) where查询慢 的优化

    千次阅读 2019-01-21 19:55:03
    在 select count(*) from 表名 where title= ‘’ 的时候 很慢 五六十万数据的表 ,title也有索引 ,也有主键, 但是没有走 title的索引 最后的解决方式 是 根据标准 把title设成256 的utf-8 的长度 现在 把 256 ...
  • TP5 where查询一个字段不等于多个值

    千次阅读 2020-05-29 10:49:10
    // 组装where条件 $wheres = []; // 后台人员类型 $people = input('people',''); switch($people){ case "跟单员": $wheres['order_type'] = ['neq', '等待业务员审核']; break; case "商务": $wheres['order_...
  • 看上图 where可以重复被调用 需要注意的是字符串条件只支持一次
  • .AsEnumerable()延迟执行,不会立即执行。... 下面的两个实体类的多条件查询就是运用了先AsEnumerable,再ToList,这样可以直接执行一次,不然就去执行多次ToList using (var db = new DB()) { ...
  • sql在where查询语句中使用变量

    万次阅读 2018-04-10 18:10:03
    好气啊,sql语句在查询变量时一直使用的是字符串模板${变量},可是这次查询一个日期时,却失败了,如:2018-04-13 最后在网上终于找到解决办法了 如下: "select * from records where brr_time='"+ ...
  • if ($starttime=="" and $endtime==""){ $starttime=date("Y-m-d", strtotime("-30 days", time())); $endtime=date("Y-m-d");...select * from services where DATE_FORMAT(laifangtime, '%Y-%m-%d')
  • SQL语句之WHERE查询子句

    万次阅读 2013-07-07 18:57:01
    限定查询WHERE子句)  之前的查询是将一张表的全部记录查询出来,那么现在如果希望可以根据指定的条件查询的话,则必须指定限定查询。  格式:  [SELECT] [{DISTINCT}] [* | 具体的列别名FROM 表名称] [{WHERE ...
  • WHERE uu.user_name LIKE 'lyο%' AND us.school_name IS NOT NULL AND usg. `school_id` = us. `school_id` AND uur.role_id = '38' ) user_student FROM `u_school` us JOIN u_...
  • tp6 where查询常用操作

    千次阅读 2020-07-24 09:00:15
    tp6 where查询常用操作 where数组查询 查询表达式与tp5.0还是有区别的 tp5.0不等于可以用 neq或者!= 而在tp6中没有这种 只能用<>查询 高级查询 查询表达式
  • mongodb group by having where 查询sql

    千次阅读 2015-07-03 11:36:51
    SELECT cust_id, SUM(price) as total FROM orders ...WHERE status = 'A' GROUP BY cust_id HAVING total &gt; 250 db.orders.aggregate( [ { $match: { status: 'A' } }, { $group: {...
  • sql语句 where 查询 date类型数据 问题

    千次阅读 2019-04-24 09:00:55
    select td.doct_name,td.doct_title,ts.visit_date,ts.visit_place,ts.visit_fee ,ts.register_level from t_doctor td,t_doct_schedule ts where ts .visit_date=STR_TO_DATE('2019-01-02...
  • SQL查询过滤Where子句用法

    万次阅读 2019-09-01 11:01:38
    大多数情况下,查询关注的是表中所有行的一个子集,需要用到Where过滤,本文主要介绍过滤的条件连接符(AND, OR, (),NOT),条件类型(相等条件、范围条件、成员条件、通配条件)以及当列名包含NULL值的注意事项。
  • //待上课表 $list2=Db::name('live_course') ->field('id,pid,title') ->whereIn('id',$allpid_future_ccid_all) ->where('deleted',0) ->where('state',...
  • tp5灵活拼接使用where查询条件

    千次阅读 2019-02-16 15:24:40
    常用的tp5多条件查询拼接 1,Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 2,以查询user表为例 $User = model("User"); // 实例化User对象 方法1:  $User-&gt;...
  • MySQL之where条件查询

    千次阅读 2019-05-10 15:51:57
    单表查询是MySQL查询中的一种常见的查询方式,而where语句块则在单表查询语句中起到指定查询过滤条件的功能。 语法为: select *|字段列表|表达式 from table_name [where 条件] [order by 字段列表] 说明: **:...
  • 这个有thinkphp官方其实给出了方法,那就是->where("字段1 =字段2") ...循环查询条件,值不为数组增加一个where 例如条件$where =[['字段1','=',1],"字段一 =字段二"]; $result=$this->...
  • where字句常用的查询条件及用法

    千次阅读 2020-09-30 09:56:44
    where字句常用的查询条件 查询条件 谓词 比较 = , > , < , >= , <= , (<> , !=不等于) 确定范围 BETWEEN AND(相当于闭集合[BETWEEN,AND]) , NOT BETWEEN AND(不属于闭集合[BETWEEN,...
  • Where子句常用查询条件

    千次阅读 2020-01-08 16:38:03
    IN:IN 操作符允许我们在 WHERE 子句中规定多个值。...EXISTS:用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False ORDER BY:排序 GROUP BY:分组 HAVING:对分组...
  • MySQL查询优化之一-WHERE语句优化

    千次阅读 2018-01-18 13:51:34
    MySQL查询优化之一-WHERE语句优化 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 环境: MySQL版本:5.5.15 操作系统:windows 本文讨论WHERE语句的优化。 这些示例使用SELECT...
  • 条件查询 elect … from 表名 where … 比较运算符 > 查询大于18岁的信息 select * from students where age>18; select id,name,gender from students where age>18; < 查询小于18岁的...
  • sql在where查询语句中使用文本值、数值、变量
  • ThinkPHP5.0 查询条件where()使用

    千次阅读 2019-11-16 17:48:07
    文章目录where()指定条件字符串条件使用字符串条件直接查询操作使用字符串条件+预处理机制一起使用数组条件(tp官方推荐)普通查询表达式查询表达式含义条件判断查询模糊查询[not] between查询[not] in查询快速查询...
  • mongodb之where条件查询

    千次阅读 2019-01-17 15:40:49
    mongodb支持sql的where查询格式 例子: db.getCollection('test_user').find({'$where':"function(){ return this.addresss.length&gt;2}"}); 上述等价:db.getCollection('test_user').find({'$...
  • $map['from_user|to_user']=session('id'); $list=db('inside_letter')-&...where($where)-&gt;where('to_msg_read=2 OR from_msg_read=2')-&gt;where($map)-&gt;limit($tol,$limit)-&gt;select();
  • %s -- 表示字段串 %d -- 表示整形数字 %f -- 表示浮点数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,209,960
精华内容 483,984
关键字:

where查询