zoukankan      html  css  js  c++  java
  • MySQL基础之用通配符进行过滤

    LIKE操作符

    利用通配符可创建比较特定数据的搜索模式。

    通配符(wildcard): 用来匹配值的一部分的特殊字符。

    搜索模式(search pattern) 由字面值、通配符或两组组合构成的搜索条件。

    通配符本身实际是SQL的WHERE子句中有特殊含义的字符。SQL支持几种通配符。

    为在搜索中使用通配符, 必须使用LIKE操作符。LIKE指示MySQL, 后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。

    百分号(%)通配符

    %表示任何字符出现任意次数。

    MariaDB [crashcourse]> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%';
    +---------+--------------+
    | prod_id | prod_name    |
    +---------+--------------+
    | JP1000  | JetPack 1000 |
    | JP2000  | JetPack 2000 |
    +---------+--------------+
    2 rows in set (0.002 sec)
    
    MariaDB [crashcourse]> 

    在执行这条语句的时候, 将检索任意以jet开头的词。

    通配符可在搜索模式中任意位置使用, 并且可以使用多个通配符。

    注意尾空格

    尾空格可能会干扰通配符匹配。

    注意NULL

    虽然似乎%通配符可以匹配任何东西, 但是不能匹配NULL

    下划线(_)通配符

    下划线的用途与%一样。但下划线只匹配单个字符而不是多个字符

    MariaDB [crashcourse]> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil';
    +---------+-------------+
    | prod_id | prod_name   |
    +---------+-------------+
    | ANV02   | 1 ton anvil |
    | ANV03   | 2 ton anvil |
    +---------+-------------+
    2 rows in set (0.000 sec)
    
    MariaDB [crashcourse]> 

    使用通配符的技巧

    通配符搜索的处理一般要比其他搜索所花的时间更长

    • 不要过度使用通配符。如果其他操作符能达到相同的目的, 应该使用其他操作符
    • 在确定需要使用通配符时, 除非绝对必要, 否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处, 搜索起来是最慢的
    • 仔细注意通配符的位置。如果放错了地方, 可能不会返回想要的数据
  • 相关阅读:
    [题解]POJ_1417_(并查集背包
    [题解]POJ_2912_(带权并查集
    [题解]luogu_P1502_窗口的星星(扫描线
    [题解/模板]POJ_1733_Pairty game(带权并查集/扩展域
    [题解/模板]悬线法luogu_P1169_棋盘制作(悬线法
    [题解]luogu_P2059_卡牌游戏(状态设计/概率dp
    [题解]luogu_P2467_地精部落(思维dp
    「CJOJ2439」军队
    「LG2397」yyy loves Maths VI (mode)
    「LG2114」起床困难综合症
  • 原文地址:https://www.cnblogs.com/featherwit/p/13368656.html
Copyright © 2011-2022 走看看