背景
- 有时候我们不能忽略大小写,如密码的比对 (这一般也在Java中对比,不存在SQL中进行区分的需求)
- 搜索的时候忽略大小写
如何忽略大小写
pgsql/ postgresql 如何查询的时候忽略大小写?
假设有 fock5 的数据
-
select * from data_group where name=‘fuck5’; --能查出
-
select * from data_group where name=‘Fuck5’; --不能
-
select * from data_group where lower(name)=lower(‘Fuck5’); --能查出
是解决方案之一,只是用不上索引了
-
select * from data_group where name ilike ‘Fuck5’; --能查出
ilike跟like一样只是忽略大小写,这也是解决方法之一,是变通的方案,因为like(ilike)不使用%就相当于=
-
select * from data_group where name like ‘%fuck%’; --能查出
-
select * from data_group where name like ‘%Fuck%’; --不能
-
select * from data_group where name ilike ‘%Fuck%’; --能查出