我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在Oracle中通过一个关键字匹配多个字段

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在Oracle中通过一个关键字匹配多个字段

怎么在Oracle中通过一个关键字匹配多个字段?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

分析:

一般情况下,我们的一个输入框对应 数据库 的某一列信息的搜索,比如,要搜索姓名为 ‘李' 姓开头的,那么对应的 sql 就是

where name like '李%'

但是,现在输入框有了不确定性,不知道用户到底会输入什么,导致我们后台的 sql 不知道该如何对应了,

比如,用户输入 18,很明显,用户是想搜索 年龄为 18 的用户,如果 后台sql 还是 where name like '18%',那么就会 搜索不到内容了。

方案一:

我们可以用 or 这种关键字来实现 多字段匹配,

比如:where name like '%搜索内容%' or age like '%搜索内容%'

这种方案对于 搜索字段比较 少的可以尝试,但是效率不高。

方案二:推荐

我们可以换一种思路

假设我们的数据库每一行都有一个完整的列 (colum),这个列的内容为 该行所有字段的内容。

那么我们搜索的sql 的可以改写为 where colum like '%搜索内容%'

这样 不论搜索 姓名 ,还是 年龄,地址 等,我们都可以查到。

既然到这里了,我相信你已经明白该怎么做了。

其实,就是用 sql 把需要可能 被用户搜索的 数据库字段拼接 起来,然后再  like '%搜索内容%'  就可以了。

oracle 做法

可以采用 instr() 函数,这里说下 INSTR()函数的作用

INSTR(参数1,参数2)其实是一个查找字符串的函数,返回的是字符串查找的位置,它有两个参数都是字符类型,如果找到则返回参数2在参数1中的位置,如果没有找到则返回 0。

SELECT INSTR('abcde', 'a') FROM DUAL;

--------------------------------------------

1

--------------------------------------------

结果分析,因为a在abcde的第一个位置,所以返回1

SELECT INSTR('abcde', 'f') FROM DUAL;

--------------------------------------------

0

--------------------------------------------

 结果分析,因为f在abcde串中找不到,所以返回0

这里 对比 like 与 instr() 函数, 如果对性能 要求比较严格的 童鞋,记得来这里 用 instr () 来 替换 like 关键字

colum like '%搜索内容%'
等价于
instr(colum, '搜索内容', 1, 1)>0
colum like '搜索内容%'
等价于
instr(colum, '搜索内容', 1, 1)=1
colum like '%搜索内容'
等价于
instr(colum, '搜索内容', 1, -1)=length(colum)-length('搜索内容')+1

sql:

oracle    ||   代表拼接多个 数据库列

一般情况:where instr(姓名||年龄||地址,'搜索内容',1,1) > 0

如果两个数据列相邻,采用 ',' 分割,防止搜索到不匹配内容:

 where instr(姓名|| ',' || 年龄|| ',' || 地址 ,'搜索内容',1,1) > 0

如果字段为空,可以用 nvl (字段名,''),来处理,他的意思是 用 ‘'代替 空的内容

mysql

concat 拼接多个数据库 列

instr 查询

where instr (concat(姓名,年龄,地址),'搜索内容') > 0

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在Oracle中通过一个关键字匹配多个字段

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

下载Word文档

猜你喜欢

sql rlike怎么匹配多个关键字

在 SQL 中,RLIKE 是用来进行正则表达式匹配的操作符。如果想要匹配多个关键字,可以使用 | 符号来表示“或”关系。例如,如果要匹配包含关键字“apple”或“orange”的记录,可以使用以下语法:SELECT * FROM t
sql rlike怎么匹配多个关键字
2024-04-09

linux shell中Grep命令查找多个字符串(grep同时匹配多个关键字或任意关键字)

目录前言1.Grep命令搜索多个字符串2.grep同时匹配多个关键字或任意关键字2.1与操作2.2 或操作2.3其他操作附:grep参数说明总结前言 grep 命令支持三种正则表达式语法:Basic、Extended 和 perl-comp
2022-08-08

linux shell中Grep命令查找多个字符串(grep同时匹配多个关键字或任意关键字)

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,下面这篇文章主要给大家介绍了关于linux shell中Grep命令查找多个字符串(grep同时匹配多个关键字或任意关键字)的相关资料,需要的朋友可以参考下
2022-11-13

SQL怎么将多个字段拼接在一起

在SQL中,可以使用CONCAT函数将多个字段拼接在一起。例如,假设有一个students表,包含first_name和last_name字段,要将这两个字段拼接成一个完整的姓名,可以使用以下语句:SELECT CONCAT(first_
SQL怎么将多个字段拼接在一起
2024-03-04

oracle中怎么删除一个表的字段

在 oracle 中删除表的字段需要以下步骤:确定要删除的字段。使用 alter table table_name drop column column_name 语句。提交更改。删除字段后,不会恢复,需检查并调整依赖项。如何在 Oracl
oracle中怎么删除一个表的字段
2024-05-03

Oracle通过一个字段的值将一条记录拆分为多条记录

本文个人拙见,若有出入,请指出——来自菜的颤抖该方式的效率不高,如何优化,请看记Oracle中regexp_substr函数的一次调优(速度提高99.5%)场景表A中存放了集装箱的信息,一个集装箱一条记录,表B中存放了对于集装箱操作的指令,一条指令包括多个集装
Oracle通过一个字段的值将一条记录拆分为多条记录
2022-01-14

怎么通过一个注解实现MyBatis字段加解密

这篇文章主要讲解了“怎么通过一个注解实现MyBatis字段加解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过一个注解实现MyBatis字段加解密”吧!简介mybatis-crypt
2023-06-29

linux中怎么使用find查找多个关键字

在Linux中,可以使用find命令与-grep参数结合来查找多个关键字。下面是一个示例命令:```find /path/to/search -type f -exec grep -l "keyword1" {} \; -exec grep
2023-09-22

怎么在Linux中使用awk命令 提取包含某个关键字的段落

这篇文章将为大家详细讲解有关怎么在Linux中使用awk命令 提取包含某个关键字的段落,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是Linux系统Linux是一种免费使用和自由传播的类
2023-06-09

怎么在Android应用中自定义一个数字键盘与密码输入框

这期内容当中小编将会给大家带来有关怎么在Android应用中自定义一个数字键盘与密码输入框,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。控件实现清单: 1)集成于EditText的输入框控件:Passwo
2023-05-31

怎么在微信小程序中实现一个多行文字滚动效果

这期内容当中小编将会给大家带来有关怎么在微信小程序中实现一个多行文字滚动效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体内容如下wxml
2023-06-14

编程热搜

目录