%开头的模糊查询是没有办法使用索引的,怎么优化都没有用。
一个建议,就是分析字段的含义,以及典型的查询需求,把这个字段拆分为多个独立字段,分别建立索引,这样查询才爽。例如你这个数据,看起来是‘年月日时分秒’的格式,可以把这些信息分散到年、月、日这样的字段里面,就可以模糊查询所有年度的月或者类似的复杂组合——需要模糊的内容不写在WHERE里面即可。
传一个变量值,变量值为你想查询输入的值,然后SQL语句为
SQL = select 表别名你的字段名 from 表 as 表别名 where 表别名条件字段名 like '%变量%';
例:<表名为:abc,存放地名的字段为:xyz>
String Str = "惠州";
String StrSQL = "select axyz as add from abc as a where axyz like "'%"+Str+"%'";
_ 匹配一个字符, 不是一个字节, 所以一个下划线就可以, ORACLE是把汉字当成一个字符来处理的, 比如:
SELECT LENGTH('王五') FROM DUAL; --结果是2
SELECT LENGTHB('王五') FROM DUAL; --结果是4
以上就是关于SQL千万级数据库模糊查询问题全部的内容,包括:SQL千万级数据库模糊查询问题、数据库SQL模糊匹配查询,求求求、数据库的模糊匹配!!谢谢!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)