详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

(编辑:jimmy 日期: 2025/2/25 浏览:2)

在SQl like语句中,比如

SELECT * FROM user WHERE username LIKE '%luchi%'
SELECT * FROM user WHERE username LIKE '_luchi_',
  • % 作为通配符通配多个
  • _ 作为通配符通配一个

但当like 所要查询的字段中含有 % ,我们如何去查:

这个时候就需要指明 字段中的那个'%‘ 不作为通配符;
这里就需要用到 ESCAPE 转义

测试:

这里我们使用这张表

详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

转义前:

SELECT * FROM user WHERE username LIKE '%%%';

详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

这里会发现三个%号都被当做通配符了;

转义后:

SELECT * FROM user WHERE username LIKE '%1%%' ESCAPE '1';

详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

查询成功

注:

  • ESCAPE 后面跟着一个字符,里面写着什么,什么就是转义符;
  • 然后就像 C语言中转义字符一样 例如 ‘\n','\t', 把这个字符写在你需要转义的那个%号前就可以了;

技巧与建议:

MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该 使用其他操作符。
  • 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起 来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数.

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?