今天在开发的时候,,发现 一个大神这样写SQL :
select o from BankCodeMapping as o where instr('xxxxxxxxx',o.code)=1");
其实是和 like '%xxx%' 要的效果类似,,, 我之前还想着,,可以 使用模糊查询呢,,第一次看到这个函数。。 百度了一下,,原来可以 提高模糊查询的效率的,,,学习了。。。
http://www.cnblogs.com/chaobest/p/6737901.html http://www.cnblogs.com/benbenhuan/p/5383282.html
上面的语句用explain解释来看,SQL语句并未用到索引,而且是全表搜索,如果在数据量超大的时候,可想而知最后的效率会是这样
对比下面的写法:
SELECT column
FROM table
WHERE field
like 'keyword%'; 这样的写法用explain解释看到,SQL语句使用了索引,搜索的效率大大的提高了!
但是有的时候,我们在做模糊查询的时候,并非要想查询的关键词都在开头,所以如果不是特别的要求,"keywork%"并不合适所有的模糊查询