关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
去年关门了。
改进这个问题
我需要在其中一列中找到一个嵌入的字符串,并在此基础上进行一些分类。
为此,我用 LIKE
声明如下:
select * from table where column like "%_ABC_%" (did not intend to use _ as a wildcard)
但这是非常缓慢的。后来我发现 _
在mysql中也是一个通配符,我删除了它,查询运行得更快了。只是想知道有没有什么解释?
2条答案
按热度按时间v6ylcynt1#
百分号
%
代表0
至N
字符,而下划线_
表示单个字符。这意味着字符串集匹配%_ABC_%
是字符串匹配集合的子集%ABC%
. mysql引擎可以从中受益。f3temu5u2#
下划线(
_
)通配符表示单个字符,而百分号(%
)表示0到n个字符的序列。rdbms通常能够从中获利,使用下划线通配符的搜索执行得更快。