我尝试用“施密特”选择所有名字。但是有些名字是小写的,有些是大写的。
我试试这个:
Select * from Account
where name like '%chmidt%'
or name like '%CHMIDT%'
但是当这个词中的一个字母是大写字母(例如SchmidT)时,该陈述没有找到这个。 知道有人解决这个问题的简单方法吗?
答案 0 :(得分:5)
我猜你使用的是Oracle而不是MySQL,因为它默认情况下是敏感的。只需使用lower()
或Select *
from Account
where lower(name) like '%chmidt%';
函数:
s
如果你想要像"施密特"这样的名字,我会添加一个Select a.*
from Account a
where lower(a.name) like '%schmidt%';
:
hammerschmidt
注意:这会找到=
和类似名称。如果您想要完全匹配,请删除通配符或使用Private Sub comboBox_Change()
fieldToEdit.Value = selectedValue.Value
End Sub
。
答案 1 :(得分:0)
进行小写比较:
Select * from Account
where lower(name) like '%chmidt%'
答案 2 :(得分:0)
如果你只是在寻找施密特,我的偏好(为了便于阅读)是既不使用LOWER也不使用UPPER,而是使用INITCAP - 和相等,而不是LIKE运算符。像这样:
select ... where initcap(name) = 'Schmidt'