数据库中字符串匹配函数like、rlike、instr、regexp_extract

2023-05-16

instr

简介

MySQL、hive中函数,instr(str,substr,position,occurrence)

其中str代表从哪个字符串中搜索,substr代表搜索哪个子字符串,返回值为子字符串在原字符串中的位置,若不存在则返回0;position为开始计数位置,occurrence代表输出第几次出现的子字符串。如instr('helloworld','o',1,2),则代表从左往右数第1位开始计算,'helloworld'字符串中第2次出现子字符串'o'的位置

应用:

select * from test where instr(index,'o') > 0;

like

简介

MySQL、hive中函数,使用通配符进行匹配,常用的通配符有'%','_',其中'%'可以匹配0到多个字符,而'_'只能匹配一个字符。like函数默认不区分大小写,若需要区分则在like后加上binary。否定形式为A NOT LIKE B

用法

select * from test where index like '%o%';

rlike

hive中函数,使用正则进行匹配,否定形式为A NOT RLIKE B

select "11111112222123333" rlike  "^12"  

regexp_extract

简介

regexp_extract(string subject, string pattern, int index) ,将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

index中,0表示把整个正则表达式对应的结果全部返回,n表示返回正则表达式中第n个() 对应的结果。

总结

  1. like是从头开始匹配,是全部匹配,而rlike可以从任意部位开始匹配;
  2. like的匹配法则是通配符,而rlike是正则表达式;
  3. instr是一个函数,可以建立函数索引,如果过滤的条件有索引,那么instr就可以提高性能;
  4. like运算符要对字段数据进行逐一扫描匹配,实际执行的效率是较差的,哪怕该字段已经建有索引(a% 这种方式会用到索引)。当数据量较大时,要尽可能的减少like 运算符的使用,也没有太多优化的余地,建议使用instr函数;
  5.  like查询时,以'%'开头,列所加的索引是不起作用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库中字符串匹配函数like、rlike、instr、regexp_extract 的相关文章

随机推荐

  • 字符的全排列、字符的组合

    一 字符的全排列 题目描述 输入一个字符串 按字典序打印出该字符串中字符的所有排列 例如输入字符串abc 则打印出由字符a b c所能排列出来的所有字符串abc acb bac bca cab和cba 输入描述 输入一个字符串 长度不超过9
  • HTTP带用户名和密码请求

    import java io IOException import org apache commons codec binary Base64 import com cn mid system urls UrlUtils import o
  • n*m的格子中正方形个数和长方形个数

    问题描述 1 xff0e 设有一个nm方格的棋盘 xff08 1 m n 100 xff09 求出该棋盘中包含多少个正方形 多少个长方形 xff08 不包括正方形 xff09 例如 xff1a 当n 61 2 xff0c m 61 3时 正
  • Linux数字权限

    linux系统文件夹 从左至右 xff0c 第一位数字代表文件所有者的权限 xff1b 第二位数字代表同组用户的权限 xff1b 第三位数字代表其他用户的权限 而具体的权限是由数字来表示的 xff1a 读取的权限等于4 xff0c 用r表示
  • 八大排序算法C语言实现

    1 插入排序 1 1 直接插入排序 基本原理 xff1a 将第n个数插入已经排序好的 xff0c 长度为n 1的序列中 从n 1长度的序列中查找出待插入的元素应该插入的位置 xff1b 给插入元素腾出空间 操作方法 xff1a 从第2个数开
  • CLion下的gtest测试

    在mac环境中 xff0c 使用CLion编译的简单gtest程序 一 下载gtest源码 加入工程中 xff1a 二 编写CMakeList txt 文件 在文件中添加头文件和链接库文件 xff0c 并将链接库文件与目标文件进行链接 sp
  • python中json与dict的互相转换(编码与解码)及其简单实现

    在json模块中 将json转换为dict数据的方法有 xff1a load loads xff08 xff09 其中 xff0c load 方法从文件中提取数据进行转换 将dict转换为json数据的方法有 xff1a dump dump
  • gtest中ASSERT与EXPECT断言的区别

    参考资料查找到ASSERT断言与EXPECT断言的区别 xff1a ASSERT 系列的断言 xff0c 当检查点失败时 xff0c 退出当前函数 xff08 注意 xff1a 并非退出当前案例 xff09 EXPECT 系列的断言 xff
  • gtest参数化

    步骤 xff1a 1 创建一个类 xff0c 继承testing TestWithParam xff0c T是你需要参数化的参数类型 xff0c 比如参数类型为int 2 使用新宏TEST P替代TEST 在TEST P宏里 xff0c 可
  • gtest中字符串比较是否相等

    1 EXPECT EQ val1 xff0c val2 xff09 class StringCmpTest span class token punctuation span public testing span class token
  • 白盒测试——逻辑覆盖

    白盒测试中的逻辑覆盖有以下六种方法 xff1a 1 语句覆盖 xff1a 每个可执行语句至少被执行一次 2 判定覆盖 xff1a 每个判定的每个分支都至少执行一次 3 条件覆盖 xff1a 判定式中每个条件的每个分支至少执行一次 4 判定条
  • 计算机网络面试题整理

    面试很多时候被问到的问题 xff0c 感觉都没答好 xff0c 统一整理一下 更新 8 23 GET和POST的区别 xff1f GET和POST方法没有实质上区别 xff0c 只是报文格式不同 GET和POST是HTTP协议中的两种请求方
  • 【C语言】c/c++中常用的预定义宏:__LINE__, __func__, __FILE__, __DATE__, __TIME__

    ANSI C标准中的预定义宏 xff08 也是常用的 xff09 xff1a LINE xff1a 在代码中插入当前行号 func xff1a 在代码中插入当前行所在的函数的函数名 FILE xff1a 在代码中插入当前文件的文件名 DAT
  • 无人机入门知识

    无人机入门知识 无人机的定义 现在提到的 无人机 xff0c 通常是说 无人飞行载具 xff08 Unmanned Aerial Vehicle xff0c 简称UAV xff09 xff0c 或称无人飞机 无人飞机系统 xff08 Unm
  • http协议

    一 认识url url被称为统一资源定位符 xff0c 用来表示从互联网上得到的资源位置和访问这些资源的方法 他的表示方法一般为 xff1a span class token operator lt span 协议 span class t
  • 大小端区别和判断

    在代码中看到往寄存器写数据的时候 xff0c 使用到 volatile uint32 t address 61 cpu to le32 value xff0c 进一步追踪 xff0c if BYTE ORDER 61 61 LITTLE E
  • 结构体对齐详解

    1 结构体数据成员对齐的意义 许多实际的计算机系统对基本类型数据在内存中存放的位置有限制 xff0c 它们会要求这些数据的起始地址的值是某个数k的倍数 xff0c 这就是所谓的内存对齐 xff0c 而这个k则被称为该数据类型的对齐模数 al
  • C语言基础之格式化占位符

    在 printf 系列函数中 xff0c 下列哪个格式化占位符有可能导致内存任意写风险 A A n B d C p D s 使用printf修改变量的值 VS2008中使用 n输出遇到的问题及解决方法 include lt stdio h
  • 不常用的访问控制方式——http auth

    今天遇到一个http auth方式的访问控制 xff0c 访问页面时出现输入用户名与密码的验证 xff1a 使用ncrack爆破登陆后 xff0c 当想要爆破目录时 xff0c 必须每次请求都带着authorication头 xff0c 使
  • 数据库中字符串匹配函数like、rlike、instr、regexp_extract

    instr 简介 MySQL hive中函数 xff0c instr str substr position occurrence 其中str代表从哪个字符串中搜索 xff0c substr代表搜索哪个子字符串 xff0c 返回值为子字符串