SQL如何将WHERE子句查询字段值转为大写后匹配全大写字符串?
实现方法
所有主流关系型数据库都支持内置的UPPER()函数,可以将字符串转为全大写格式,你可以直接在WHERE子句中调用该函数处理name字段,无需修改表内原有的存储数据。
通用SQL语句写法如下:
SELECT Id, Name FROM 你的表名 WHERE UPPER(Name) = 'JOHN DOE';
如果你是用参数绑定的方式传入myCapString变量,写法参考(以Python的sqlite3为例,不同语言参数占位符略有区别):
myCapString = "JOHN DOE" cursor.execute("SELECT Id, Name FROM 你的表名 WHERE UPPER(Name) = ?", (myCapString,))
注意事项
- 部分数据库支持大小写不敏感的排序规则,如果你已经开启了对应规则可以直接用
WHERE Name = ?匹配,但上述UPPER()的写法兼容性更强,所有数据库都通用。 - 如果你的
name字段数据量很大,而且这类查询使用频率很高,可以考虑额外建一个存储全大写name的生成列加索引,能提升查询性能,不过如果数据量不大的话直接用上述写法就足够了。
内容的提问来源于stack exchange,提问作者Sequinex
相关产品推荐
相关产品推荐

