• MySQL中进行模糊搜索的一些问题


     在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符 描述 
          % 替代一个或多个字符
         _ 仅替代一个字符
         [charlist] 字符列中的任何单一字符
        [^charlist] 或者 [!charlist]。
       mysql> select * from Person where City not like '%lon%';
    +----+----------+-----------+----------------+----------+------+
    | id | LastName | FirstName | Address        | City     | Year |
    +----+----------+-----------+----------------+----------+------+
    |  3 | Bush     | George    | Fifth Avenue   | NEW York | 1975 |
    |  7 | Carter   | Fred      | Changan Street | Beijing  | 1980 |
    +----+----------+-----------+----------------+----------+------+
    但是当你使用[charlist]来模糊搜索的时候,你会发现你很有可能查不到你想要的结果:
     
    浅谈如何在MySQL中进行模糊搜索的一些问题

    其实,当你想要用[charset]这种模式来搜索的时候应该把like关键字换成regexp关键字,因为由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
    mysql> select * from Person where City REGEXP '[L]';
    +----+----------+-----------+--------------+--------+------+
    | id | LastName | FirstName | Address      | City   | Year |
    +----+----------+-----------+--------------+--------+------+
    |  1 | Adams    | John      | abc          | London | 1970 |
    |  2 | sam      | John      | OXfordStreet | London | 1970 |
    |  4 | Fred     | John      | OXfordStreet | London | 1970 |
    |  6 | Adams    | John      | OXfordStreet | London | 1970 |
    +----+----------+-----------+--------------+--------+------+
    4 rows in set (0.03 sec)

  • 相关阅读:
    软件测试技术第一次作业编程中发生的错误与解决
    PHP+phpMyAdmin编程插入数据显示中文乱码的问题
    软件测试技术第三次作业——打印质数printPrimes()
    周总结
    课程看不懂的问题
    自我介绍
    周总结(第三周总结)
    目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
    Python获取html页内容
    python 读写保存excel xlrd,xlwt,xlutils保留原样式、格式、背景样式、文字样式
  • 原文地址:https://www.cnblogs.com/bzggood/p/6196927.html
Copyright © 2020-2023  润新知