第 8 章 用通配符进行过滤
8.1 LIKE 操作符
通配符: 用来匹配值的一部分的特殊字符
搜索模式: 由字面值、通配符或两者组合构成的搜索条件
为了在搜索子句中使用通配符,必须使用 LIKE 操作符
8.1.1 百分号(%)通配符
输入: SELECT server_cost.cost_name,server_cost.last_update FROM server_cost WHERE server_cost.cost_name LIKE 'dis%'; 输出: +----------------------------+---------------------+ | cost_name | last_update | +----------------------------+---------------------+ | disk_temptable_create_cost | 2024-01-03 15:22:15 | | disk_temptable_row_cost | 2024-01-03 15:22:15 | +----------------------------+---------------------+ 分析: 此例子使用了搜索模式 'dis%'。在执行这条子句时,将检索任意以 dis 开头的词。% 告诉 MySQL 接受 dis之后的任意字符且不管数量多少 输入: SELECT server_cost.cost_name,server_cost.last_update FROM server_cost WHERE server_cost.cost_name LIKE '%temptable%'; 输出: +------------------------------+---------------------+ | cost_name | last_update | +------------------------------+---------------------+ | disk_temptable_create_cost | 2024-01-03 15:22:15 | | disk_temptable_row_cost | 2024-01-03 15:22:15 | | memory_temptable_create_cost | 2024-01-03 15:22:15 | | memory_temptable_row_cost | 2024-01-03 15:22:15 | +------------------------------+---------------------+ 分析: % 可以出现在任何位置
8.1.2 下划线(_)通配符
输入: SELECT help_category.name FROM help_category WHERE help_category.name LIKE 'MB_'; 输出: +------+ | name | +------+ | MBR | +------+ 分析: _ 只匹配一个字符,同样不限制出现位置
8.2 使用通配符的技巧
1. 不要过度使用通配符
2. 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处,因为慢
3. 仔细注意通配符的位置