使用通配符以及like操作符进行通配搜索,对数据进行复杂过滤
like操作符
- %通配符
# %表示任意字符出现的任意次数
# 1
select prod_id,prod_name
from products
where prod_name like 'jet%';
# 根据MySQL的配置方式,搜索可以区分大小写
# 2
select prod_id,prod_name
from products
where prod_name like '%anvil%';
# 3
select prod_id,prod_name
from products
where prod_name like 's%s';
# 注意尾空格
# 若‘anvil’后有一个或多个空格,则‘%anvil’不会进行匹配
# 注意null,%不能匹配null
# 例如:where prod_name like '%'不能匹配用null做产品名的行
- _通配符
# _匹配单个字符
# 1
select prod_id,prod_name
from products
where prod_name like '_ ton anvil';
# 与%对比:%匹配任意字符出现的任意次数
select prod_id,prod_name
from products
where prod_name like '% ton anvil';
- 不要过度使用通配符。如果其他操作符能达到相同目的,尽量使用其他操作符
- 确实需要通配符时,除非绝对有必要,不要将通配符放在搜索模式的开始处,因为这样是最慢的。
- 注意通配符的位置,错误放置可能不会返回想要的数据。