zoukankan      html  css  js  c++  java
  • MySQL的模糊搜索

    1.模糊搜索

        第一时间我马上想到了关键字 like

        1.1.所要查询的字段中包含特定 字符,但不确定其位置,使用两个%起来

               select * from phone where provider like '%Apple%'

              可以匹配 'AppleXXX',       'xxAppleXX',      'ABCDefgApple'

        1.2.能够确定要查字段的结尾,则如下:

              select * from Student where name like '%';

              可以匹配到 '黄',   '',    'xxx' (必须是以聪结尾的)

        1.3.确定开头的,

              select * from Student where name like '%';

              可以匹配到 '聪',    'XXXXX' (必须是以黄开头的)

           


             可以观察到,凡是使用关键字 like 就必须与 百分号% 结合使用,针对以上三种情况

             一、 能够确定开头的:在确定部分后加百分号, like 'Tom%'

             二、 能够确定结尾的,在确定部分前面加百分号, like '%Tom'

             三、 只知道包含,但不能确定具体位置的, like '%Tom%'

          特别注意:由于like的效率通常非常低,所以尽量少用,如果非得用,最好是符合第三种情况,也就是确定开头内容的,

              因为这样是能够使用到索引的,而另外两种则无法使用索引,会扫描全表,所以特别慢。

    2. 使用MySQL内置函数

            请参考:MySQL使用内置函数来进行模糊搜索(locate()等)

    3. 使用MySQL的全文索引

            请参考:MySQL使用全文索引(fulltext index)

  • 相关阅读:
    springmvc文件下载
    srringmvc中Controller向前端传值
    springmvc文件上传
    springmvc数据绑定流程
    ssm框架restful风格实现增删改查
    ssm框架搭建
    springmvc直接转发
    @RequestParams注解
    个人博客写了两年
    JS使用OSS上传文件遇到的一些问题
  • 原文地址:https://www.cnblogs.com/tommy-huang/p/4483693.html
Copyright © 2011-2022 走看看