通配符可用于创建特定的数据搜索模式,搜索模式是由字面值、通配符或两者组合构成的搜索条件。
为在搜索子句中使用通配符,必须使用LIKE操作符,LIKE操作符指示MySQL后跟的搜索模式利用通配符匹配而非直接匹配。
从技术上说,LIKE是谓词而不是操作符,了解此术语以在看SQL文档时能看懂。
百分号通配符%
表示任何字符出现任意次数(包括0次):
SELECT columnName
FROM tableName
WHERE columnName LIKE 'jet%';
以上SQL选出条件列以jet开头的行。
根据MySQL的配置方式,搜索可以是区分大小写的,如区分大小写,则以上SQL不能匹配到JetPack 1000
。
百分号通配符不能匹配NULL值。
下划线通配符_
只匹配单个字符:
SELECT columnName
FROM tableName
WHERE columnName LIKE '_a';
以上SQL语句只匹配条件列为两个字符的文本、且第二个字符为a的行。
通配符的搜索一般比普通搜索所花时间更长,如果其他操作符能达到相同目的,不应使用通配符搜索。
除非绝对有必要,否则不要将通配符用在搜索模式的开始处,这样搜索起来是最慢的。