文章目录

  • 1.概述
  • 2.LIKE关键字
  • 3.百分号(%)通配符
    • 3.1 单个百分号(%)通配符
    • 3.2 多个百分号(%)通配符
    • 3.3 在值的中间使用百分号(%)通配符
    • 3.4 注意事项
  • 4.下划线(_)通配符
  • 5.使用通配符的技巧

1.概述

通配符是用来匹配值的一部分的特殊字符;

本小节介绍如何使用通配符以及怎样使用LIKE关键字进行通配搜索,以便于对数据进行复杂过滤;

2.LIKE关键字

前面介绍过所有操作符都是针对已知值进行过滤的,不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共同点是过滤中使用的值都是已知的。

但是这种过滤方法并不是任何时候都好用。例如,搜索产品名中包含文本anvil的所有产品时,用简单的比较操作符肯定是不行的,必须使用通配符。

利用通配符可以创建比较特定的搜索模式,在这个例子中,如果你想找出名称中包含anvil的所有产品,可以构造一个通配符搜索模式,找出产品中任何位置出现anvil的产品。

为在搜索子句中使用通配符,需要使用LIKE关键字,LIKE指示MySql后跟的搜索模式使用通配符匹配,而不是直接相等匹配进行搜索。

3.百分号(%)通配符

最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。

3.1 单个百分号(%)通配符

例如,为了找出所有以jet开头的产品,可以使用下列SQL:

输入:

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 'jet%';

输出:

此例子使用了搜索模式 ‘jet%’。在执行子句时,将查询任意以jet开头的词,不管后续有多少字符,什么字符,%都告诉SQL匹配它;

3.2 多个百分号(%)通配符

通配符可以在搜索模式中的任意位置使用,并且可以使用多个通配符。下列的例子将使用俩个通配符,且位于模式的俩端:

输入:

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '%anvil%';

输出:

此例子使用了搜索模式 ‘%anvil%’。在执行子句时,%通配符告诉SQL将匹配任意位置文本包含 anvil 的值,而不论 anvil 之前或之后出现什么值,出现多少值,哪怕是没有,以anvil开头的也匹配;

3.3 在值的中间使用百分号(%)通配符

通配符也可以使用在搜索模式的中间,虽然这没什么用,例如下列例子中,查找以s开头,e结尾的产品:

输入:

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 's%e';

输出:

3.4 注意事项

使用百分号(%)通配符时需要注意:

  1. 注意百分号(%)通配符能匹配任意多的字符,哪怕是0个也是匹配的;
  2. 注意百分号(%)通配符使用时字符出现空格,尤其是尾空格,如 WHERE prod_name LIKE ‘%anvil’ 中如果查询的数据anvil后跟着一个空格,那么将不匹配它,因为在SQL中 anvil 与 anvil加一个空格,代表不一样的含义,你可以在尾部也增加一个通配符,或者通过后期学习的函数去处理数据;
  3. 要特别注意NULL值,虽然百分号(%)通配符可以匹配任意字符,但是NULL并不代表任何字符,使用通配符没有任何办法可以匹配它,只能通过 IS NULL 来查询;

4.下划线(_)通配符

另外一个有用的通配符就是下划线(_)。

下划线(_)的用途与%通配符一样,但下划线只能匹配一个字符,而不是多个。

输入:

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '_ ton anvil';

输出:

此WHERE子句的搜索模式给出了后面跟有文本的通配符。结果只显示匹配搜索模式的行,第一行中下划线匹配字符1,第二行中下划线匹配字符2;

. 5 ton anvil 产品没有匹配,因为搜索模式要求匹配俩个通配符,而不是一个。对比下列使用%通配符的结果,即可直观了解俩者的差别:

输入:

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '% ton anvil';

输出:

甚至去掉%后跟着的括号也是同样的结果;

与%不同的就是,_只能匹配一个字符,不能多也不能少;

5.使用通配符的技巧

虽然通配符很有用,但是使用通配符花费的时间要比前序介绍的查询方法都长,所以日常使用通配符时,要注意以下事项:

  1. 不要过度使用,能用其他方式达到同样效果的,优先选择其他方式;
  2. 在必须要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处,这样会导致搜索的效率是最慢的;
  3. 要注意通配符使用时放置的位置,位置错误会导致查询结果可能不是你想要的;

4.4 like通配符关键字过滤查询数据相关推荐

  1. Flask-SQLAlchemy 对数据库的过滤查询

    Flask-SQLAlchemy 对数据库的过滤查询 使用 Flask-SQLAlchemy 从数据库中查询数据,可以指定查询的条件.数据库中的数据很多,用户需要的只是某一条数据或满足某个条件的数据. ...

  2. 股票F10关键字过滤工具

    股票F10关键字过滤工具使用说明书                   作者QQ:32078915 沪深A股目前有2500多只股票,股票F10资料天天都有更新,如果手动一只一只查看股票F10资料工作量 ...

  3. oracle 查的数据去重复数据,Oracle查询和过滤重复数据

    对数据库某些意外情况,引起的重复数据,如何处理呢? ----------------查重复: select * from satisfaction_survey s where s.as_side = ...

  4. 【数据api】数据API企业关键字模糊查询

    数据介绍 企业关键字模糊查询,通过关键字查询企业名称,获取企业唯一代码,用于企业工商登记信息查询. 查看详情 应用场景 1.企业征信评级:通过企业涉诉信息的多少及相关的裁判结果,为金融机构提供可靠的数 ...

  5. PHP访问关键字,php数据访问之查询关键字,php数据关键字_PHP教程

    php数据访问之查询关键字,php数据关键字 本文实例为大家分享了php查询操作的实现代码,供大家参考,具体内容如下 一.一个关键字查询 主页面: 汽车查询页面 汽车查询页面请输入查询内容: 代号 汽 ...

  6. redis zset转set 反序列化失败_Redis只往zset有序集合添加不存在的数据:关键字索引查询构建+源码分析...

    Redis的有序集合Sorted Set(zset),可以很方便地用来构建关键字索引表,可以很方便地实现支持超大规模并发的关键字组合条件查询. 比如有套博客系统,博客文章存放在 hash 类型 art ...

  7. oracle 查询关键字,Oracle 中的SELECT 关键字(查询、检索)

    1. SELECT 关键字用法: 检索单个列:select 列名 from 表名: 例:select ename from emp; 检索多个列: select [列1,列2, ... ,列N] fr ...

  8. go mysql 查询数据_MySQL常用语句之查询数据-Go语言中文社区

    简单查询: select [distinct] *| {字段名1,字段名2,字段名3, ...} from 表名 [where 条件表达式1] [group by 字段名 [having 条件表达式2 ...

  9. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

最新文章

  1. Java修改文件夹下所有文件名
  2. android位运算简单讲解
  3. TensorFlow 安装protoc
  4. C#最基本的小说爬虫
  5. 数学 FZU 2074 Number of methods
  6. 安卓 java中改布局_android-选项卡布局中的地图视图throwing,java....
  7. linux添加Mib库,Linux SNMP中的管理信息库(MIB)学习
  8. Tomcat学习总结(10)——Tomcat多实例冗余部署
  9. xml矢量图:svg的viewBox和vml的coordsize决定的虚坐标系简说
  10. “上班那点儿事交流圈”发展计划
  11. 相机模型与标定(一)--相机标定概述
  12. raft Paxos
  13. 渗透测试常用端口利用总结
  14. SVN修改文件夹名称
  15. ddr3ddr4 lpddr4速率_LPDDR3内存就比DDR4差?是时候冷静一下了
  16. pdf文件转换成word转换器
  17. iqos烟弹哪个最好抽?我品尝了十一种电子烟烟弹后告诉你
  18. JAVA程序 通过IP地址 获取MAC地址
  19. zTree的使用教程
  20. beacon帧字段结构最全总结(一)——beacon基本结构

热门文章

  1. php 支付宝证书 单笔转账到账户
  2. java filebody bitmap对象_处理 | 保利威帮助中心 - Part 5
  3. mac 查ip linux,如何通过mac地址查ip,小编教你Mac怎么查看ip地址
  4. (windows图形化界)粘滞键后门
  5. 网络技术缩写术语大全,还有中英文对比哦。
  6. ubuntu安装显卡问题
  7. 实训一 思科交换机基础配置
  8. mysql字段的长度_MySQL字段的长度
  9. 基于asp.net116教师工资管理系统
  10. 页面图钉_图钉—将REST API转变为实时API的开源库