首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql优化篇:where中的like和=的性能分析

, 那我在这里简单的总结下: 1,不同点:like可以用作模糊查询,而'='不支 持此功能;如下面的例子,查询info表中字段id第一个字母为1的数据: select * from info...where id like '1%'; 2,相同点:like和"="都可以进行精确查询,比如下面的例子,从结果上 看,都是查询info表中字段id等于'12345'的结果: select * from...info where id like '12345'; 以上就是返回结果中,like和'='中的相同和不同点。...mysql优化篇:where中的like和=的性能分析 那我们来使用explain测试一下like和=下的查询情况,首先我们来测试一下为索引的字段: EXPLAIN SELECT * FROM...mysql优化篇:where中的like和=的性能分析 小伙伴通过对比可以看到两条返回结果的type字段和Extra字段中的数据有所不同,那为什么不同,他们所代表的含义是什么呢?

1.7K30

MongoDB查询(数组、内嵌文档和$where)

上篇主要介绍了一些基本的查询条件操作符的使用,主要针对的是一些单值,我们这次来讲讲如何查询文档内的数组和嵌入文档,并讲一下复杂查询"$where"。...如果是精确匹配的方式,MongoDB的处理方式是完全相同的匹配,即顺序与数量都要一致,上述中第一条文档和查询条件的顺序不一致,第三条文档比查询条件文档多一个元素,都没有被匹配成功!...但条件操作符"$size"不能和其他操作符连用如“$gt”等,这是这个操作符的一个缺陷。使用这个操作符我们只能精确查询某个长度的数组。...上篇提到了,find函数的第二个参数用于查询返回哪些键,他还可以控制查询返回数组的一个子数组,如下例:我只想查询水果店售卖说过数组的前两个: ?...我们可以看出,使用"$where"其实就是写了一个javascript函数,MongoDB在查询时,会将每个文档转换成一个javascript对象,然后扔到这个函数中去执行,通过返回结果来判断其是否匹配

6.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql连接查询时查询条件放在On之后和Where之后的区别

    背景 在一次对数据进行统计的时候,需要对两张表进行关联,类似于这样的语句a left join b on a.id = b.id where b.name = xx。...a.id = b.class_id and b.gender = 'F' group by a.name 查询结果 2: 只统计‘一班’的学生数量 错误的写法 select a.name, count...= b.class_id where a.name = '一班' group by a.name  查询结果  原因 mysql 对于left join的采用类似嵌套循环的方式来进行从处理,以下面的语句为例...,导致左表在右表中无匹配行的行在最终结果中不出现,违背了我们对left join的理解。...通过上面的问题现象和分析,可以得出了结论:在left join语句中,左表过滤必须放where条件中,右表过滤必须放on条件中,这样结果才能不多不少,刚刚好。

    1.7K10

    【mysql】比较运算符

    = >= 比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。...不等于运算符(和!=) 不等于运算符(和!=)用于判断两边的数字、字符串或者表达式的值是否不相等,如果不相等则返回1,相等则返回0。不等于运算符不能判断NULL值。...and 8000; 或 WHERE salary >= 6000 && salary <= 8000; 交换6000 和 8000之后,查询不到数据 SELECT employee_id,last_name...LIKE运算符 LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0。如果给定的值或者匹配条件为NULL,则返回结果为NULL。...first_name LIKE 'S%'; SELECT last_name FROM employees WHERE last_name LIKE '_o%'; LIKE :模糊查询 查询last_name

    2.5K30

    nodejs环境快速操作mysql数据库

    模糊匹配 查询数据返回格式 查询全部/获取数据 统计个数 条件查询 模糊查询 插入数据 更新数据 删除数据 返回指定字段(不添加会返回全部) 排序 自定义查询语句 安装 普通版本 npm install...collection.where({username:"zcc"}).get() collection.where({username:"zcc"}) 模糊匹配 collection.like(array...'SUCCESS', data: { count: 2 }, count: '查询到2个数据' } 条件查询 条件匹配+获取数据 collection.where(params).get()...(res) }) 模糊查询 模糊匹配+获取数据 collection.like(array).get() array 数组类型 格式为[[“数据库键名1”,“值”,like],[“数据库键名2”,“值”...DESC"}).get().then(res=>{ console.log(res) }) 排序后返回的数据格式和查询数据结果格式一样 自定义查询语句 如果以上方法无法满足您的需求 您可以自定义查询语句

    1.1K10

    MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法

    LIKE 'a%'; #查询name中 a 结尾的值 SELECT department_id,last_name,salary FROM employees WHERE last_name LIKE...LIKE运算符 LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0。如果给定的值或者匹配条件为NULL,则返回结果为NULL。...SELECT job_id FROM jobs WHERE job_id LIKE ‘IT$_%‘ escape ‘$‘; #like 模糊查询 查询 相似值 #%% 代表不确定个数的字符 代表前后有若干个值可能是..., salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%'; 注意: OR可以和AND一起使用,但是在使用时要注意两者的优先级...,LIKE运算符也可以匹配指定的字符串,但与REGEXP不同,LIKE匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回。

    9410

    当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

    目录 1 编写顺序 1 编写顺序 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是: 1.执行where xx对全表数据做筛选,返回第1...2.针对第1个结果集使用group by分组,返回第2个结果集。 3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。...4.针对第3个结集执行having xx进行筛选,返回第4个结果集。 5.针对第4个结果集排序。...Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。...-- 3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩 select b.s_id,b.s_name,ROUND(AVG(a.s_score),2) as avg_score from

    84320

    【TcaplusDB知识库】什么是TcaplusDB数据库?

    举例来说,假设一个表的primarykey是"uid,role_id,zone_id",其中uid和role_id的值足够多样,而zone_id只有几个、最多几百个不同的值,那么使用zone_id作为splittablekey...单个记录大小最高10MB,可以将常用的对象文件序列化成二进制文件存储。 索引 TcaplusDB支持两种形式的索引:本地索引和全局索引。...,此时,tcaplus会进行分包返回的,如果业务侧收包速度低于tcaplus返回响应包的速度,那么就可能导致tcaplus出现因为网络缓存区满而丢包的情况,一般建议是使用本地索引查询时,利用limit和...=, between, in, not in, like, not like, and, or , 比如: select * from table where a > 100 and b 和100这两个值的,即查询范围为[1,100] 注意:like查询是支持模糊匹配,其中"%"通配符,匹配0个或者多个字符; “_”通配符,匹配1个字符

    54540

    【TcaplusDB知识库】什么是TcaplusDB数据库?

    举例来说,假设一个表的primarykey是"uid,role_id,zone_id",其中uid和role_id的值足够多样,而zone_id只有几个、最多几百个不同的值,那么使用zone_id作为splittablekey...单个记录大小最高10MB,可以将常用的对象文件序列化成二进制文件存储。 索引 TcaplusDB支持两种形式的索引:本地索引和全局索引。...,此时,tcaplus会进行分包返回的,如果业务侧收包速度低于tcaplus返回响应包的速度,那么就可能导致tcaplus出现因为网络缓存区满而丢包的情况,一般建议是使用本地索引查询时,利用limit和...=, between, in, not in, like, not like, and, or , 比如: select * from table where a > 100 and b 和100这两个值的,即查询范围为[1,100] 注意:like查询是支持模糊匹配,其中"%"通配符,匹配0个或者多个字符; “_”通配符,匹配1个字符

    76030

    【Django】Django ORM 学习笔记

    QuerySet exclude(**kwargs) - 获得不满足查询条件的 QuerySet get(**kwargs) — 从数据库中获得一个匹配的结果(一个实例),如果没有匹配结果或者匹配结果大于一个都会报错...BINARY '%b%' icontains : 包含,不区分大小写 - a LIKE '%b%' iexact : 大小写不敏感的精确匹配 - a LIKE 'b' startswith : 匹配开头...,区分大小写 - a LIKE BINARY 'b%' istartswith : 匹配开头,不区分大小写 - a LIKE 'b%' endswith : 匹配结尾,区分大小写 - a LIKE BINARY...'%b' iendswith : 匹配结尾,不区分大小写 - a LIKE '%b' 我们还可以进行关联查询,下面的例子是查询所有 author name 为 zjk 的 blog, blogs =...`id` = 1 迭代:在首次迭代查询集时会执行数据库查询 切片(限制查询集):对查询集执行切片操作时,指定 step 参数 序列化/缓存 repr:对查询集调用 repr 函数 len:对查询集调用

    2.2K20

    mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQLmysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL

    mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL SELECT tagDeptUserRel.* FROM tag_dept_user_rel tagDeptUserRel inner...返回值 下面查询btype字段中包含”15″这个参数的值 SELECT * from test where FIND_IN_SET('15',btype) 返回值 下面查询btype字段中包含”5″这个参数的值...SELECT * from test where FIND_IN_SET('5',btype) 返回值为null,因为btype中没有”5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值...接下面查询btype字段中包含”20″这个参数的值 SELECT * from test where FIND_IN_SET('20',btype) 当然它的返回值为null,因为字段中没有这个值...FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

    2.4K20

    《MySQL核心知识》第6章:查询语句

    2 AND 10 带like的字符匹配查询 1、百分号通配符“%”,匹配任意长度的字符,甚至包括零字符 SELECT f_id,f_name FROM fruits WHERE f_name LIKE...'b%y' 2、下划线通配符“_”,一次只能匹配任意一个字符 下面语句有四个下划线 SELECT f_id,f_name FROM fruits WHERE f_name LIKE '____n'...中可以使用 LIMIT 4 OFFSET 3 ,意思是获取从第5行记录开始的3条记录,和 LIMIT 4,3 返回的结果是一样的 子查询 子查询这个特性从「MySQL4.1」开始引入。...s_id IN (101,103) 第一个查询把f_price小于9.0的记录查询出来,第二个查询把s_id为101和103的记录查询处理 因为f_price小于9.0的记录里有些记录的s_id是...1、查询以特定字符或字符串开头的记录 字符“^”匹配以特定字符或者字符串开头的文本 SELECT * FROM fruits WHERE f_name REGEXP '^b' 返回f_name字段以b

    78630

    玩转Mysql系列 - 第7篇:玩转select条件查询,避免采坑

    逻辑运算符 描述 AND 多个条件都成立 OR 多个条件中满足一个 AND(并且) select 列名 from 表名 where 条件1 and 条件2; 表示返回满足条件1和条件2的记录。...like(模糊查询) 有个学生表,包含(学生id,年龄,姓名),当我们需要查询姓“张”的学生的时候,如何查询呢? 此时我们可以使用sql中的like关键字。...语法: select 列名 from 表名 where 列 like pattern; pattern中可以包含通配符,有以下通配符: %:表示匹配任意一个或多个字符 _:表示匹配任意一个字符。...NOT IN查询 not in和in刚好相反,in是列表中被匹配的都会被返回,NOT IN是和列表中都不匹配的会被返回。...总结 like中的%可以匹配一个到多个任意的字符,_可以匹配任意一个字符 空值查询需要使用IS NULL或者IS NOT NULL,其他查询运算符对NULL值无效 建议创建表的时候,尽量设置表的字段不能为空

    1.6K30

    MySQL数据库学习,详解select条件查询(二)

    like(模糊查询) 有个学⽣表,包含(学⽣id,年龄,姓名),当我们需要查询姓“张”的学⽣的时候,如何 查询呢? 此时我们可以使⽤sql中的like关键字。...语法: select 列名 from 表名 where 列 like pattern; pattern中可以包含通配符,有以下通配符: %:表⽰匹配任意⼀个或多个字符 _:表⽰匹配任意⼀个字符。...NOT IN查询 not in和in刚好相反,in是列表中被匹配的都会被返回,NOT IN是和列表中都不匹配的会 被返回。...结论:查询运算符、like、between and、in、not in对NULL值查询不起效。 那NULL如何查询呢?...IS NULL(返回值为空的记录) select 列名 from 表名 where 列 is null; 查询指定的列的值为NULL的记录。

    1.2K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券