SQL - 选择名称,无论是大写还是小写字母

Dre*_*tor 1 sql database oracle plsql

我尝试用"施密特"选择所有名字.但有些名字是小写的,有些是大写的.

我试试这个:

Select * from Account
where name like '%chmidt%'
or name like '%CHMIDT%'
Run Code Online (Sandbox Code Playgroud)

但是,如果单词中的一个字母是大写字母(例如SchmidT),那么该语句就没有找到.知道有人解决这个问题的简单方法吗?

Gor*_*off 5

我猜你使用的是甲骨文,而不是MySQL,因为它默认情况下是敏感的.只需使用upper()lower()功能:

Select *
from Account
where lower(name) like '%chmidt%';
Run Code Online (Sandbox Code Playgroud)

s如果你想要像"施密特"这样的名字,我会添加一个:

Select a.*
from Account a
where lower(a.name) like '%schmidt%';
Run Code Online (Sandbox Code Playgroud)

注意:这将找到hammerschmidt和相似的名称.如果您想要完全匹配,请删除通配符或使用=.