首页
学习
活动
专区
圈层
工具
发布

mysql正则表达式,实现多个字段匹配多个like模糊查询

一下参考 风吹屁股凉冰冰 这名字很是调皮,在此基础上再做修改 -- ==============正则查询================ /* SQL默认是忽略大小写的 正则模式使用REGEXP和NOT...匹配包含方括号内某单个字符的字符串,[0-9]匹配0到9之间的某个数字 * 匹配零个或多个在它前面的字符 {n} 匹配n个在它前面的字符 如果希望大小写都匹配上可以这样写。...================ -- MySql的like语句中的通配符:百分号、下划线和escape -- % 表示任意个或多个任意字符。...SELECT * FROM `test_t` WHERE NAME LIKE '%me_aB'; -- 查询结果 name_aB -- 如果需要找出 name 中既有 b 又有 a 的记录,使用 and...SELECT * FROM `test_t` WHERE NAME LIKE 'name_/%%好/_' ESCAPE '/'; -- 查询结果 name_%好好_  ok,nice

14.1K20

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

mysql优化篇:where中的like和=的性能分析 那我们来使用explain测试一下like和=下的查询情况,首先我们来测试一下为索引的字段: EXPLAIN SELECT * FROM...Extra字段 1,Extra字段是Explain输出中也很重要的列,所代表着MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。...mysql优化篇:where中的like和=的性能分析 有的小伙伴该问了那非索引字段呢?...mysql优化篇:where中的like和=的性能分析 like: ? mysql优化篇:where中的like和=的性能分析 可以看出当非索引字段时like和"="是一样的,性能上也没有差别。...结论 经过我们的不懈努力,可以得到结论:当like和"="在使用非索引字段查询时,他们的性能是一样的;而在使用索引字段时,由于"="是直接命中索引的,只读取一次,而like需要进行范围查询,所以"="要比

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

    【愚公系列】2021年12月 Mysql数据库-模糊查询like效率问题和优化方案

    文章目录 前言 一、模糊查询like效率 二、更高效的写法 1.索引 2.LOCATE('substr',str,pos)方法 3.POSITION('substr' IN `field`)方法 4.INSTR...(`str`,'substr')方法 5.FIND_IN_SET(str1,str2)方法 总结 前言 这篇文章主要向大家介绍Mysql模糊查询like效率,以及更高效的写法,主要内容包括基础应用、实用技巧...提示:以下是本篇文章正文内容,下面案例可供参考 一、模糊查询like效率 在使用msyql进行模糊查询的时候,很天然的会用到like语句,一般状况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级...这个时候查询的效率就显得很重要。...因为达到百万级基本都是分库分表,这种写法一样意义不是特别大like基本够用,学习中需要多多积累记录下。

    1.4K20

    MyISAM InnoDB 区别(回顾)

    MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。...相反,MySQL会扫描所有记录,即要查询10000条记录。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。...一般来说,在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引。...刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符%和_开头作查询时,MySQL不会使用索引。...短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。 ◆索引列排序 MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。

    1.2K50

    MySQL索引类型一览 让MySQL高效运行起来

    MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。...相反,MySQL会扫描所有记录,即要查询10000条记录。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。...一般来说,在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引。...刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符%和_开头作查询时,MySQL不会使用索引。...短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。 ◆索引列排序 MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。

    1.3K50

    软件测试|MySQL LIKE:深入了解模糊查询

    简介在数据库查询中,模糊查询是一种强大的技术,可以用来搜索与指定模式匹配的数据。MySQL数据库提供了一个灵活而强大的LIKE操作符,使得模糊查询变得简单和高效。...本文将详细介绍MySQL中的LIKE操作符以及它的用法,并通过示例演示其功能。基本语法MySQL中的LIKE操作符用于模糊匹配数据表中的文本字段。...在pattern中可以使用通配符% 和_,分别代表匹配任意多个字符和匹配一个字符。...总结MySQL的LIKE操作符提供了强大的模糊查询功能,允许在文本字段中查找匹配特定模式的数据。通过使用通配符 % 和 _,可以灵活地进行模糊匹配。...然而,在使用LIKE操作符时需要注意查询性能和大小写敏感性,以确保查询效率和结果准确性。以上示例展示了LIKE操作符的基本用法,你可以根据实际情况和需求灵活运用它来进行模糊查询。

    1.5K30

    MySQL LIKE 子句

    LIKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串。...以下是 MySQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法: SELECT column1, column2, ......你可以使用 AND 或者 OR 指定一个或多个条件。 你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。...'表%清_'; -- 解释:组合使用 % 和 _(查询页面名称以“表”开头、以“清”结尾,并且长度为4个字符的所有数据)。...已知学生编码字段中含有“nan”的数据如下(不区分大小写) 查询结果 LIKE 子句提供了强大的模糊搜索能力,可以根据不同的模式和需求进行定制。

    1.2K10

    mysql进阶(二十六)MySQL 索引类型(初学者必看)

    MySQL 索引的建立对于 MySQL 的高效运行是很重要的。下面介绍几种常见的 MySQL 索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。...相反,MySQL会扫描所有记录,即要查询 10000 条记录。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。...一般来说,在WHERE 和 JOIN 中出现的列需要建立索引,但也不完全如此,因为 MySQL 只对,>=,BETWEEN,IN,以及某些时候的 LIKE 才会使用索引。...刚才提到只有某些时候的 LIKE 才需建立索引。因为在以通配符%和_开头作查询时,MySQL不会使用索引。...Name like'%admin' 因此,在使用 LIKE 时应注意以上的区别。

    59520

    MySQL索引的使用及注意事项

    索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,"最优"的索引有时比一个"好的"索引性能要好两个数量级。 索引可以包含一个(单列索引)或多个列(组合索引)的值。...想要使用组合索引首先要了解一个原则:最左前缀原则。如果索引包含多个列,那么列的顺序十分重要,因为 MySQL 只能高效地使用索引的最左前缀列。...MySQL 能在索引中做最左前缀匹配的 like 比较,但是如果是通配符开头的 like 比较,就不能使用索引。...possible_keys :指出 MySQL 能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用。...key: 显示 MySQL 在查询中实际使用的索引,若没有使用索引,显示为 NULL。 key_len :表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。

    76710

    MySQL - RANGE优化篇

    优化器在常量传播阶段,会将一些非常量值转换为常量。 定义 对于BTREE索引和HASH索引来说,索引的范围优化基本上只适用于等值查询。...=, 和LIKE(注意,like的常量值不能以通配符开头) 对于所有索引类型,多个范围条件与 OR或 AND在一起会形成一个范围条件 代码示例 以下是在WHERE子句中使用范围条件进行查询的一些示例...'ab%' OR key_col BETWEEN 'bar' AND 'foo'; 提取过程 MYSQL会尽可能从索引中提取范围条件,在提取过程中,利用索引将不能提取范围条件的过滤掉,然后对剩下的数据进行额外的筛选...范围表达式内存估算准则 1.多个 OR组合,每个 OR大概占230字节,在 5.7.11之前约占 700字节,所以慎用 SELECT COUNT(*) FROM t WHERE a=1 OR a=2 OR...IN,恐怖如斯,在 IN中每个内容就会视为一个 OR,如果有多个IN,那么该占用的指数是乘积( M×N) SELECT COUNT(*) FROM t WHERE a IN (1,2, ..., M)

    2.5K30

    性能测试必备监控技能MySQL篇15

    在笔者的日常性能测试过程中,重点关注了这些参数,但不代表仅仅只有这些参数对性能有影响。 还需要大家在实践过程中,结合实际情况来调整相关参数,分析相关指标。达成深入优化的效果。...配置 配置以下配置选项开启记录慢查询和没有使用索引的查询功能 编辑 my.cnf或者my.ini文件。 注: 只对linux下进行说明。windows请自行去搜索。...输入,即可在console中查看到对应的慢sql和未使用索引的查询语句了。...如果当前没有运行多个mysqld服务器同时请求同一个表,那么可以通过增加--skip-external-locking参数来禁止外部系统锁。...大部分状态对应很快的操作,只要有一个线程保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下。 show status 查看MySQL服务器状态信息。 ?

    1.8K120

    MySql基础-笔记5 -WHERE 、UPDATE、DELETE、LIKE、UNION使用

    、作用修改或更新 MySQL 中的数据2.2、语法UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]你可以同时更新一个或多个字段...你可以在 WHERE 子句中使用LIKE子句。你可以使用LIKE子句代替等号 =。LIKE 通常与 % 一同使用,类似于一个元字符的搜索。你可以使用 AND 或者 OR 指定一个或多个条件。...4.3、实际操作使用LIKE来查询study_tb1中所有study_username为张三的数据图片4.4、其他使用like 匹配/模糊匹配,会与 % 和 _ 结合使用。'...和搭配使用,查询张三,如“三”图片2、使用LIKE和搭配使用,查询张三,如“张”图片3、使用LIKE和_搭配使用,查询zhangsan,如“_san”图片5、UNION 操作符5.1、作用用于连接两个以上的...SELECT 语句的结果组合到一个结果集合中。

    2.2K30

    面试又给我问到MySQL索引,最全的一次整理

    _1 LIKE '_好_' 如果要表示在字符串中既有A又有B,那么查询语句为: SELECT * FROM table_name WHERE column_1 LIKE '%A%' AND column...SELECT * FROM table_name WHERE column_1 LIKE '[^张李王]三'; //表示column_1中有匹配除了张三、李三、王三的其他三都可以 //在模糊查询中,...%表示任意0个或多个字符;_表示任意单个字符(有且仅有),通常用来限制字符串长度;[]表示其中的某一个字符;[^]表示除了其中的字符的所有字符 或者在全文索引中模糊查询 SELECT * FROM table_name...:用多个列组合构建的索引,这多个列中的值不允许有空值 ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3'); *遵循“最左前缀...*在使用组合索引的时候可能因为列名长度过长而导致索引的key太大,导致效率降低,在允许的情况下,可以只取col1和col2的前几个字符作为索引 ALTER TABLE 'table_name' ADD

    56950

    MySQL从删库到跑路_高级(六)——索引

    在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。...二、索引的分类 1、单列索引 单列索引只包含单个列,但一个表中可以有多个单列索引。 A、普通索引 普通索引允许在定义索引的列中插入重复值和空值。...2、复合索引 在表中的多个字段组合上创建的索引,只有在查询条件中使用了组合的多个字段的左边字段时,索引才会被使用,使用复合索引时遵循最左前缀集合。...ref:给出关联关系中另一个数据表中数据列的名字。 rows:MySQL在执行查询时预计会从数据表里读出的数据行的个数。 extra:提供与关联操作有关的信息。   ...3、使用覆盖索引实现order by排序 在MySQL中的ORDER BY有两种排序实现方式: A、利用有序索引获取有序数据 B、文件排序 使用EXPLAIN分析SQL查询时,利用有序索引获取有序数据显示

    1.7K20

    MySQL 索引完全指南:提升性能的黄金法则与终极技巧

    空间索引:用于地理空间数据类型的查询。 MySQL 中几种常见的索引类型,包括主键索引、唯一索引、普通索引、全文索引和组合索引。...l可以在表的一个或多个列上创建。 特点: l提高查询速度,没有唯一性要求。 l可以在多列上创建组合索引。 注意事项: l普通索引适用于查询频繁但没有唯一性要求的列。...组合索引 (Composite Index) 简介: l组合索引是指在多个列上创建的索引。 l可以包含多个列,通常用于联合查询。 特点: l提高多列组合查询的性能。...4.组合索引:对于多个列一起使用的查询,创建组合索引。...4.使用 OR:在多个条件之间使用 OR 可能会导致索引失效,尤其是当 OR 条件中的列没有索引时。 1.Like %使用:禁止使用%前缀模糊查询,例如LIKE “%ganji”,索引失效。

    81210

    mysql索引使用技巧及注意事项

    索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。...如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。       如果从表中删除某列,则索引会受影响。...如果分别给LOGIN_NAME,CITY,AGE建立单列索引,让该表有3个单列索引,查询时和组合索引的效率是大不一样的,甚至远远低于我们的组合索引。...这是因为mysql组合索引“最左前缀”的结果。简单的理解就是只从最左边的开始组合,并不是只要包含这三列的查询都会用到该组合索引。...13.在join操作中(需要从多个数据表提取数据时),mysql只有在主键和外键的数据类型相同时才能使用索引,否则及时建立了索引也不会使用。

    2.9K70
    领券