广告
返回顶部
首页 > 资讯 > 数据库 >Oracle REGEXP_LIKE模糊查询用法例子
  • 416
分享到

Oracle REGEXP_LIKE模糊查询用法例子

摘要

目录1、函数介绍2、使用此函数不区分大小写2-1、LIKE 函数2-2、REGEXP_LIKE 函数3、多条件3-1、多个OR条件时,LIKE函数就不能满足需求了。3-2、AND :既有A又有B3-3、检索以某个字符串开

1、函数介绍

REGEXP_LIKE 函数在功能上与 LIKE 函数非常相似。 然而,虽然 LIKE 允许简单的字符串匹配搜索,但 REGEXP_LIKE 函数非常强大,因为除了字符串匹配搜索之外,它还可以使用正则表达式。 REGEXP_LIKE 可以按如下方式使用。

        REGEXP_LIKE ( string , pattern [, match] )

        REGEXP_LIKE ( 检索对象 , 检索字符 [, 检索参数] )

                      ' 'i':不区分大小写

                      'c':区分大小写

                      'n':将换行符与“n”句点 (.) 匹配

                      'm':将搜索目标视为多行,并将“^”和“$”匹配到每行的开头和结尾。

进行测试之前先创建表

 CREATE TABLE test_table_regexp_like
(
  message_val VARCHAR2(50) NOT NULL
);
 
INSERT INTO test_table_regexp_like VALUES ('Data Discrepancy needs to be fixed.');
INSERT INTO test_table_regexp_like VALUES ('I am in desperate NEED of money.');
INSERT INTO test_table_regexp_like VALUES ('I really NeeD you forever.');

2、使用此函数不区分大小写

2-1、LIKE 函数

SELECT
    message_val AS message_val_like
FROM
    test_table_regexp_like
WHERE
    LOWER(message_val) LIKE '%need%';

查询结果:

message_val
--------------------------------------------------
Data Discrepancy needs to be fixed.
I am in desperate NEED of money.
I really NeeD you forever.

2-2、REGEXP_LIKE 函数

SELECT
    message_val AS message_val_regexp_like
FROM
    test_table_regexp_like
WHERE
    REGEXP_LIKE(message_val, 'need', 'i');

查询结果

message_val_regexp_like
--------------------------------------------------
DATA Discrepancy needs TO be fixed.
I am IN desperate NEED OF money.
I really NeeD you forever.

3、多条件

3-1、多个OR条件时,LIKE函数就不能满足需求了。

-- 包含 am 或者 NeeD 的数据

-- ”|“ 作用 = or
SELECT
    message_val AS message_val_regexp_like
FROM
    test_table_regexp_like
WHERE
    REGEXP_LIKE(message_val, 'am|NeeD');     

查询结果

message_val_regexp_like
--------------------------------------------------
I am IN desperate NEED OF money.
I really NeeD you forever.

3-2、AND :既有A又有B

-- AND 条件 ("really" 和 "you" 都包含的)
-- "()|()" = AND 
SELECT
    message_val AS message_val_regexp_like
FROM
    test_table_regexp_like
WHERE
    REGEXP_LIKE(message_val, '(really)|(you)'); 

检索结果

message_val_regexp_like
--------------------------------------------------
I really NeeD you forever.

3-3、检索以某个字符串开头的数据

-- 以 "I" 开头,中间有 "you" 的字符串。
-- "^" 字符串首位
-- ".*" 任意字符串
SELECT
    message_val AS message_val_regexp_like
FROM
    test_table_regexp_like
WHERE
    REGEXP_LIKE(message_val, '^I.*you.*');

检索结果

message_val_regexp_like
--------------------------------------------------
I really NeeD you forever.

3-4、检索以某个字符串结尾的数据

-- 以 "I" 开头、以 "money." 结尾的字符串
-- "^" :字符串首位
-- "$" :字符串末尾
SELECT
    message_val AS message_val_regexp_like
FROM
    test_table_regexp_like
WHERE
    REGEXP_LIKE(message_val, '^I.*money.$');

检索结果

message_val_regexp_like
--------------------------------------------------
I am IN desperate NEED OF money.

补充:oracle模糊查询中的regexp_like嵌套子查询用法

oracle模糊查询中的regexp_like嵌套子查询用法

regexp_like一般用于模糊查询某一列时包含多个查询条件

需求1:在用户表中查询出账号包含650000和230000的用户。

select * from sys_user where regexp_like(account,'650000|230000')

以上的写法等同于下面的写法:

select * from sys_user where account like '%650000%' or account like'%230000%'

需求2:在另一张表中查询出所需条件(查询条件为另一个表的结果集),并在用户表中以该条件模糊查询对应的用户信息。

即在sys_org表中查出类型为1的orgid并以此结果在sys_user表中查询出对应的账号信息。

select fullname,account from sys_user where  REGEXP_LIKE (account,(select replace(wm_concat(orgid),',','|') from (select orgid from  sys_org where orgtype = '1' order by orgid )))

解决思路:

若是以此结果集进行查询会报错:“单行子查询返回多行”

1、将结果集显示成一列。所用函数:wm_concat(列名)

注:wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,即“行转列”

select wm_concat(orgid) from (select orgid from  sys_org where orgtype = '1' order by orgid )

Oracle REGEXP_LIKE模糊查询用法例子

2、将结果集用 | 分隔

select replace(wm_concat(orgid),',','|') from (select orgid from  sys_org where orgtype = '1' order by orgid )

Oracle REGEXP_LIKE模糊查询用法例子

3、查询条件并已完成,用 regexp_like查询出所需信息即可

select fullname,account from sys_user where  REGEXP_LIKE (account,(select replace(wm_concat(orgid),',','|') from (select orgid from  sys_org where orgtype = '1' order by orgid )))

总结

到此这篇关于Oracle REGEXP_LIKE模糊查询用法的文章就介绍到这了,更多相关Oracle REGEXP_LIKE模糊查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle REGEXP_LIKE模糊查询用法例子

本文链接: https://www.lsjlt.com/news/173118.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle REGEXP_LIKE模糊查询用法例子
    目录1、函数介绍2、使用此函数不区分大小写2-1、LIKE 函数2-2、REGEXP_LIKE 函数3、多条件3-1、多个OR条件时,LIKE函数就不能满足需求了。3-2、AND :既有A又有B3-3、检索以某个字符串开...
    99+
    2022-11-19
    oracle regexp_like模糊查询 oracle模糊查询like语句 Oracle模糊查询
  • Oracle 模糊查询及like用法
    目录Oracle 模糊查询like用法一、where子句中使用like关键字1._2.[]3.[^]二、在Oracle中提供了instr(strSource,strTarg...
    99+
    2022-11-12
  • oracle精确查询和模糊查询实例代码
    本篇内容主要讲解“oracle精确查询和模糊查询实例代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle精确查询和模糊查询实例代码”吧!精确查询:SE...
    99+
    2022-10-18
  • SQL模糊查询的用法
    这篇文章主要介绍“SQL模糊查询的用法”,在日常操作中,相信很多人在SQL模糊查询的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL模糊查询的用法”的疑惑有所帮助!接...
    99+
    2022-10-18
  • oracle sql语言模糊查询的示例分析
    小编给大家分享一下oracle sql语言模糊查询的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!oracle在Wher...
    99+
    2022-10-18
  • MySQL模糊查询语法的用法
    本篇内容主要讲解“MySQL模糊查询语法的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL模糊查询语法的用法”吧!MySQL提供标准的SQL模式匹配...
    99+
    2022-10-18
  • MyBatis使用Map与模糊查询的方法示例
    当我们的实体类、或者数据库里的表、字段或者参数很多,这个时候考虑使用map 一、使用map传参插入数据 1.编写Dao接口/Mapper层 使用Map做参数 //Dao接口/...
    99+
    2022-11-12
  • Vue实现模糊查询的简单方法实例
    前言 所谓模糊查询就是不需要用户完整的输入或者说全部输入信息即可提供查询服务,也就是用户可以在边输入的同时边看到提示的信息(其实是查询出来匹配到的信息),百度的搜索功能就是很好的模糊...
    99+
    2022-11-12
  • mybaties 批量模糊查询、foreach string[]用法
    List randomRecipe(@Param("str")String[] strs,@Param("num")int num); 功能:随机查询num个不含strs[]的的Recipe 注:str:["苹果","甘蓝"]...
    99+
    2017-08-20
    mybaties 批量模糊查询 foreach string[]用法
  • Javaweb模糊查询方法怎么使用
    这篇“Javaweb模糊查询方法怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Javaweb模糊查询方法怎么使用”文...
    99+
    2023-06-26
  • mongodb模糊查询方法怎么使用
    在MongoDB中,可以使用正则表达式来进行模糊查询。有两种方式可以实现模糊查询: 使用$regex操作符:$regex操作符可以...
    99+
    2023-10-25
    mongodb
  • Fuse.js模糊查询算法怎么使用
    这篇文章主要介绍“Fuse.js模糊查询算法怎么使用”,在日常操作中,相信很多人在Fuse.js模糊查询算法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Fuse.js模糊查询算法怎么使用”的疑惑有所...
    99+
    2023-07-05
  • Oracle中Like与Instr模糊查询性能的示例分析
    这篇文章主要介绍了Oracle中Like与Instr模糊查询性能的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。instr(titl...
    99+
    2022-10-18
  • mysql模糊查询concat()的用法详解
    目录mysql 模糊查询 concat()补充:MySQL之concat的用法一、concat()函数二、concat_ws()函数三、group_co...
    99+
    2023-02-14
    mysql 模糊查询 concat() mysql concat用法
  • mysql 模糊查询 concat()的用法浅谈
    大家都知道concat()函数,是用来连接字符串,今天通过本文给大家介绍mysql 模糊查询 concat()及concat的用法,感兴趣的朋友跟随微点阅读小编一起看看吧 mysql 模糊查询 concat...
    99+
    2023-10-12
    mysql 数据库 sql
  • mysql 模糊查询 concat()的用法详解
    目录mysql 模糊查询 concat()补充:MySQL之concat的用法一、concat()函数二、concat_ws()函数三、group_concat()函数四、conc...
    99+
    2023-02-14
    mysql模糊查询concat() mysql concat用法
  • mysql数据库模糊查询语句的用法
    模糊查询语句如下:“SELECT 字段 FROM 表 WHERE 某字段 Like 条件”。mysql提供了四种匹配模式:1、% 表示任意0个或多个字符。如下语句:SELECT * ...
    99+
    2022-10-18
  • mysql中的模糊查询方法怎么使用
    在MySQL中,可以使用LIKE操作符进行模糊查询。1. 使用通配符%:该通配符表示任意字符的任意数量。例如,要查找以 "abc" 开头的所有记录,可以使用以下查询语句:```sqlSELECT * FROM table_nam...
    99+
    2023-08-09
    mysql
  • Mybatis-plus LambdaQueryWrapper 模糊查询 like方法使用记录
    项目开发过程中使用Mybatis-Plus的lambda 表达式,对其中对模糊查询like方法开始不理解其中参数Boolean是什么作用。后边看其他的方法都是两个对应的,有带Boolean参数的有不带...
    99+
    2023-09-07
    mybatis java mysql
  • mybatis使用concat模糊查询的方法是什么
    本篇内容介绍了“mybatis使用concat模糊查询的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用concat 模糊查询&...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作