MySQL like通配符使用
LIKE 就是模糊查,两个通配符记住就够用:% 管任意多个字符(包括零个),_ 只管一个字符。
-- % 匹配任意长度
SELECT * FROM user WHERE name LIKE '张%'; -- 张开头
SELECT * FROM user WHERE name LIKE '%张%'; -- 包含张
-- _ 只占一个位置
SELECT * FROM user WHERE name LIKE '张_'; -- 张后面正好一个字
-- 要查真正的 % 或 _ 本身,用 ESCAPE 指定转义符
SELECT * FROM user WHERE title LIKE '%\%%' ESCAPE '\\';
坑点:% 放在最前面索引基本失效,几万条数据就能感觉出来慢。多个关键字用 OR 拼起来凑合能查,数据再多就得考虑全文索引。
说点什么 0