Sqlite 中大小写不敏感查询/删除某条记录

背景

项目中有时会需要忽略值的大小写来进行 sql 查询,数据库中存储的某个字段的值(字符串) 是大小写不固定的,所以单纯的把参数强转为大写或小写,也无法匹配成功,还好 sql 支持 upper 和 lower 函数。

函数说明

upper(‘aaa’) 函数
说明
将字符串 ‘aaa’ 转成大写,返回一个新的字符串。如果在 sql 语句构造时,为 upper 函数传入的是某个字段的名称,那么该函数会返回字段值的大写字符串。

lower(‘BBB’) 函数
说明
将字符串 ‘BBB’ 转成小写,返回一个新的字符串。如果在 sql 语句构造时,为 lower 函数传入的是某个字段的名称,那么该函数会返回字段值的小写字符串。

用例

  1. 以查询系统媒体库的 files 表为例,从 files 表中,查询 _data 字段的值为 ‘/storage/emulated/0/Music’ 的记录,忽略大小写。

sql 语句如下,

select * from files where upper(_data) = upper('/storage/emulated/0/Music');

查询结果如下,
在这里插入图片描述
注:将上面查询语句中的 upper 函数换成 lower 会得到同样的结果。

  1. 从 files 表中,删除 _data 字段值为 ‘/storage/emulated/0/Music’ 的记录,忽略大小写。

sql 语句如下,

delete from files where lower(_data) = lower('/storage/emulated/0/Music');

执行结果如下,
在这里插入图片描述
由上面的执行结果可知,数据已经被成功删除。

总结

upper 和 lower 分辨将字段值或字符串转成大写或小写。一般用于条件判断语句中,例如查询语句或删除语句的 where 语法后,用来忽略大小写进行条件查询。

欢迎关注我的公众号,一起进步!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ToSimpleL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值