在MySQL模糊查询中,单引号和空格有完全不同的作用和含义:
字符串界定符:单引号用于界定字符串的开始和结束
SELECT * FROM users WHERE name LIKE '%John%'; -- 正确
SELECT * FROM users WHERE name LIKE %John%; -- 错误,缺少单引号
转义特殊字符:在字符串内部,单引号需要转义
SELECT * FROM users WHERE name LIKE '%O\'Reilly%'; -- 查询包含O'Reilly的记录
SQL语句分隔符:空格用于分隔SQL语句的不同部分
SELECT * FROM users WHERE name LIKE '%John%'; -- 空格分隔关键字
查询模式的一部分:在LIKE模式中,空格是普通字符
SELECT * FROM users WHERE name LIKE '%John Smith%'; -- 查询包含"John Smith"的记录
-- 查询名字中包含"van der"的记录(空格作为查询内容)
SELECT * FROM users WHERE name LIKE '%van der%';
-- 查询名字中包含"O'Connor"的记录(单引号作为查询内容)
SELECT * FROM users WHERE name LIKE '%O\'Connor%';
理解这些区别能帮助您编写正确有效的模糊查询语句。