Heim  >  Artikel  >  Datenbank  >  Warum Oracle-Abfragen nicht zwischen Groß- und Kleinschreibung unterscheiden

Warum Oracle-Abfragen nicht zwischen Groß- und Kleinschreibung unterscheiden

WBOY
WBOYOriginal
2022-05-10 17:45:4812897Durchsuche

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

Warum Oracle-Abfragen nicht zwischen Groß- und Kleinschreibung unterscheiden

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle查询怎么不区分大小写

1、方式一

转为小写  LOWER('ABC') 结果 abc

转为大写  UPPER('aBc') 结果 ABC

select * from table lower(FAMILY_NAME) like lower(#{familyName}) --将字段全转成小写
select * from table upper(FAMILY_NAME) like upper(#{familyName}) --将字段全转成大写

2、方式二

REGEXP_LIKE(x, pattern [, match_option])

当源字符串x匹配正则表达式pattern时,返回true。

可以使用match_option修改默认匹配选项,该参数可以被设置为:   

  • - 'c', 说明在进行匹配时区分大小写(默认选项)   

  • - 'i', 说明在进行匹配时不区分大小写   

  • - 'n', 允许使用可以匹配任意字符的操作符(通常是'.')   

  • - 'm', 将x作为一个包含多行的字符串  

SELECT * FROM test_reg WHERE REGEXP_LIKE(name, '(a)\1', 'i');

上面的SQL语句匹配test_reg表中name列含有两个连续字符'a'(不区分大小写)的行,如name='SaAs'。

此外,这里我们还使用了正则表达式中的后引用语法——\n表示重复n次上次匹配的内容,

此处(a)\1表示匹配两个连续的字符'a'。

Oracle 默认是区分大小写,如果不要区分,就要额外的设置。

这个是在当前会话上,也就是说在每次发起查询的时候都需要执行这个才能起作用的。

推荐教程:《Oracle视频教程

Das obige ist der detaillierte Inhalt vonWarum Oracle-Abfragen nicht zwischen Groß- und Kleinschreibung unterscheiden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn