PostgreSQL ilike /like 和upper/lower

PostgreSQL 是大小写敏感的,所以要不你强制使用大写或小写,要不使用ilike,或者使用upper/lower先强制转换字段值为大小或小写    。实际测试(相对而言,在80万记录中查询,均没有使用索引,应该也用不了。虽然这里barcode/box_barcode可以使用upper建立索引的

CREATE INDEX tabindex ON tab (upper(col));
)

(barcode) like '%9M0AB%' or (box_barcode) like '%9M0AB%'   591毫秒

(barcode) ilike '%9M0AB%' or (box_barcode) ilike '%9M0AB%'  3070毫秒

upper(barcode) like '%9M0AB%' or upper (box_barcode) like '%9M0AB%' 1865毫秒

所以,ilike 慎重使用,upper/lower 会是比较折衷的方案   

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。