通配符必须放在引号内,如SELECT FROM users WHERE name LIKE 'a%';错误写法是SELECT FROM users WHERE name LIKE %;

在MySQL中使用通配符时,是否加引号取决于具体的使用场景和通配符所处的位置。通配符本身(如 % 和 _)是用于模式匹配的特殊字符,通常出现在 LIKE 或 NOT LIKE 操作符后的字符串中。它们不能单独使用,必须包含在引号内的字符串里才能被正确解析。
通配符必须放在引号内
在 WHERE 条件中使用 LIKE 进行模糊查询时,模式字符串必须用单引号或双引号括起来,通配符也必须包含在其中。
- 正确写法:SELECT * FROM users WHERE name LIKE 'a%';
SELECT * FROM users WHERE name LIKE '_bc'; - 错误写法:
SELECT * FROM users WHERE name LIKE %;(缺少引号,语法错误)
引号的作用是定义字符串边界
MySQL通过引号识别模式字符串的开始和结束。如果省略引号,数据库会将 % 或 _ 当作列名或语法符号处理,导致报错或逻辑错误。
- '%john%' 表示包含“john”的任意字符串 - 'j__n' 表示以 j 开头,n 结尾,中间恰好有两个字符的字符串 - 如果写成 %john%(无引号),MySQL会报语法错误特殊情况:转义字符与自定义通配符
当需要查找的内容本身就包含 % 或 _ 时,可以使用 ESCAPE 关键字配合转义字符,并且这些字符依然要在引号内处理。
- 查找下划线:SELECT * FROM files WHERE filename LIKE '%\_%' ESCAPE '\'; - 这里的 \_ 被当作字面意义的下划线,但仍需包裹在引号中
基本上就这些。只要记住:通配符必须出现在引号包围的字符串中,不能独立存在。引号不是可选项,而是语法必需。正确使用引号,才能让LIKE操作正常工作。










