南宁微网站制作,系部网站建设研究方案,辽宁建设厅投诉网站,贵州高端建设网站select * from TABLE0 where trim(column1):param
当表数据量大时#xff0c;即使给column1字段加上索引#xff0c;这条查询语句也会很慢。
因为使用trim函数后#xff0c;column1的索引会失效#xff0c;有两种处理方法#xff1a;
1.给表加上trim(column1)函数索引 …select * from TABLE0 where trim(column1):param
当表数据量大时即使给column1字段加上索引这条查询语句也会很慢。
因为使用trim函数后column1的索引会失效有两种处理方法
1.给表加上trim(column1)函数索引
这样就能走索引查询不用全表扫描
2.代码里面对param补齐末尾的空格
使用tirm无非是担心char字段存储的长度没达到数据库设置的长度数据末尾会出现空格而前端展示数据时一般会去掉空格传给后端这就导致无法查询出数据char是用来存储定长字符的虽然出现这种问题是设计和使用上的不合理导致但是还得解决这个问题。
可以在程序中对传入参数的末尾补齐空格直到达到char字段的长度这样查询就不需要tirm了java代码如下 private String formatChar(String s, int charLen){int len s null ? 0 : s.length();if(len 0 len charLen){StringBuilder blank new StringBuilder();for (int i 0, j charLen - len; i j; i) {blank.append( );}s s blank;}return s;}