背景
项目中有时会需要忽略值的大小写来进行 sql 查询,数据库中存储的某个字段的值(字符串) 是大小写不固定的,所以单纯的把参数强转为大写或小写,也无法匹配成功,还好 sql 支持 upper 和 lower 函数。
函数说明
upper(‘aaa’) 函数
说明
将字符串 ‘aaa’ 转成大写,返回一个新的字符串。如果在 sql 语句构造时,为 upper 函数传入的是某个字段的名称,那么该函数会返回字段值的大写字符串。
lower(‘BBB’) 函数
说明
将字符串 ‘BBB’ 转成小写,返回一个新的字符串。如果在 sql 语句构造时,为 lower 函数传入的是某个字段的名称,那么该函数会返回字段值的小写字符串。
用例
- 以查询系统媒体库的 files 表为例,从 files 表中,查询 _data 字段的值为 ‘/storage/emulated/0/Music’ 的记录,忽略大小写。
sql 语句如下,
select * from files where upper(_data) = upper('/storage/emulated/0/Music');
查询结果如下,
注:将上面查询语句中的 upper 函数换成 lower 会得到同样的结果。
- 从 files 表中,删除 _data 字段值为 ‘/storage/emulated/0/Music’ 的记录,忽略大小写。
sql 语句如下,
delete from files where lower(_data) = lower('/storage/emulated/0/Music');
执行结果如下,
由上面的执行结果可知,数据已经被成功删除。
总结
upper 和 lower 分辨将字段值或字符串转成大写或小写。一般用于条件判断语句中,例如查询语句或删除语句的 where 语法后,用来忽略大小写进行条件查询。
欢迎关注我的公众号,一起进步!