1. LIKE操作符

  • 通配符:用来匹配值的一部分的特殊字符
  • 搜索模式:由字面值、通配符或者两者组合构成的搜索条件
  • 为在搜索子句中使用通配符,必须使用LIKE操作符
  • LIKE指示MySQL,后面跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较
  • LIKE为谓词而不是操作符

2. 百分号 % 通配符

  • 表示任何字符出现任意次数
# 检索产品名称以jet开头的所有产品
SELECT
	prod_id,
	prod_name 
FROM
	products 
WHERE
	prod_name LIKE 'jet%';
  • 搜索模式’%anvil%'表示匹配任何位置包含文本anvil的值,而不论它之前或之后出现什么字符
SELECT
	prod_id,
	prod_name 
FROM
	products 
WHERE
	prod_name LIKE '%anvil%';
  • 检索以s开头以e结尾的所有产品
SELECT
	prod_name 
FROM
	products 
WHERE
	prod_name LIKE 's%e';
  • 尾空格会干扰通配符匹配
  • 如下语句在匹配时,如果某条记录prod_name的anvil后面包含空格,则不会被匹配到
SELECT
	prod_id,
	prod_name 
FROM
	products 
WHERE
	prod_name LIKE '%anvil';

3. 下划线 _ 通配符

# _ 匹配一个字符
SELECT
	prod_id,
	prod_name 
FROM
	products 
WHERE
	prod_name LIKE '_ ton anvil';

4. 使用通配符技巧

  • 不要过度使用通配符,如果其他操作符能达到相同的目的,应该使用其他操作符
  • 在确实需要使用通配符时,除非绝对有需要,否则不要把他们用在搜索模式的最开始处,把通配符置于搜索模式的最开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置,如果放错地方,可能不会返回想要的数据。