SQL 通配符是在 LIKE
运算符中使用的特殊字符,用于在基于文本的列中搜索模式。两个最常见的通配符是百分号 (%
),它匹配零个或多个字符,以及下划线 (_
),它恰好匹配一个字符。 这些通配符应用于 WHERE
子句中,以基于灵活的模式而不是精确的匹配来过滤行。例如,WHERE name LIKE 'A%'
检索所有以“A”开头的名称,而 WHERE code LIKE 'ABC_123'
匹配像 “ABCX123” 或 “ABC-123” 这样的代码,其中下划线表示该位置的任何单个字符。
通配符对于部分字符串匹配特别有用。 %
通配符可以放在模式的开头、中间或结尾。 例如,LIKE '%error%'
在列中查找任何出现 “error” 的情况,无论其位置如何。 _
通配符更精确,允许您考虑可变的单个字符。 像 LIKE 'User_123'
这样的模式匹配 “UserA123” 或 “UserX123”。 某些数据库还支持方括号(例如,[a-z]
)来匹配一系列字符,例如 LIKE 'File[0-9]'
用于 “File1” 到 “File9”,尽管此语法因数据库系统而异(例如,MySQL 中不支持)。
使用通配符时,性能和清晰度是关键的考虑因素。 以 %
开头的模式(例如,LIKE '%data')
可能会导致全表扫描,从而降低大型数据集的查询速度。 为了缓解这种情况,可以将通配符与其他过滤器(例如,日期范围)结合使用,或者使用全文搜索来查找复杂的模式。 搜索字面量 %
或 _
字符时,必须使用转义字符(例如,\
) 来转义通配符。 例如,WHERE note LIKE '50\% off' ESCAPE '\'
确保 %
被视为常规字符。 始终测试模式以避免意外匹配,并使用数据库特定的功能(如索引)来优化通配符搜索。