站长资源数据库
详解MySQL like如何查询包含'%'的字段(ESCAPE用法)
简介在SQl like语句中,比如SELECT * FROM user WHERE username LIKE '%luchi%'SELECT * FROM user WHERE username LIKE '_luchi_',% 作为通配符通配多个_ 作为通配符通配一个但当like 所要查询的字段中
在SQl like语句中,比如
SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username LIKE '_luchi_',
- % 作为通配符通配多个
- _ 作为通配符通配一个
但当like 所要查询的字段中含有 % ,我们如何去查:
这个时候就需要指明 字段中的那个'%‘ 不作为通配符;
这里就需要用到 ESCAPE 转义
测试:
这里我们使用这张表
转义前:
SELECT * FROM user WHERE username LIKE '%%%';
这里会发现三个%号都被当做通配符了;
转义后:
SELECT * FROM user WHERE username LIKE '%1%%' ESCAPE '1';
查询成功
注:
- ESCAPE 后面跟着一个字符,里面写着什么,什么就是转义符;
- 然后就像 C语言中转义字符一样 例如 ‘\n','\t', 把这个字符写在你需要转义的那个%号前就可以了;
技巧与建议:
MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
- 不要过度使用通配符。如果其他操作符能达到相同的目的,应该 使用其他操作符。
- 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起 来是最慢的。
- 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数.