LIKE
LIKE 做模式匹配,配合通配符 % 和 _ 实现模糊搜索。模式中普通字符精确匹配自身,% 匹配任意长度的任意字符(包括零个),_ 匹配恰好一个任意字符。
LIKE 默认不区分大小写(取决于字符集和排序规则),但区分中文的全角/半角和繁简体。MySQL 中 LIKE 的行为和表的排序规则(collation)有关。
LIKE 还支持转义:LIKE '100\%' ESCAPE '\' 匹配字面量"100%",其中 \% 被转义为普通百分号。
以飞翔科技为例:
-- 找名字以"航"开头的员工
SELECT emp_name FROM employees
WHERE emp_name LIKE '航%';
-- 找商品名包含"飞翔"的商品
SELECT product_name, price FROM products
WHERE product_name LIKE '%飞翔%';
-- 找工号格式为 1 开头共 5 位的员工
SELECT emp_id, emp_name FROM employees
WHERE emp_id LIKE '1____';
-- 找地址中包含"朝阳区"的租房合同
SELECT community, address FROM rental_contracts
WHERE address LIKE '%朝阳区%';
第三个例子 '1____' 用了四个下划线,匹配"1 开头 + 正好四个字符"——典型用于固定格式的编码搜索。