gpt4 book ai didi

MySQL - 字符串比较索引

转载 作者:行者123 更新时间:2023-11-29 01:20:18 29 4
gpt4 key购买 nike

这适用于带有 MySQL 5.7 的 InnoDB。

如果我有这样的查询:

SELECT A, B, C FROM TABLE WHERE STRCMP(D, 'somestring') > 0

是否可以在 D 上建立一个可供查询使用的索引?即 MySQL 是否足够聪明,可以将 btree 索引用于 STRCMP 函数?

如果不是,我怎样才能重新设计查询(和/或表),以便我可以对 D 进行字符串比较,并且可以进行某种形式的修剪,这样它就不必命中每一行?

最佳答案

到目前为止错误答案之多令人惊讶。让我看看我能不能加入他们。

STRCMP 返回 -1、0 或 1,具体取决于参数的比较方式。

STRCMP(D, 'somestring') > 0D > 'somestring' 相同。 (不是>=,不是=,不是LIKE)

实际上,可能存在排序规则差异,但如有必要,可以进行处理。

任何函数和某些运算符都会“隐藏”列以防止与 INDEXes 一起使用。 D > 'somestring' 可以受益于以 D 开头的索引; STRCMP 版本不能。

关于MySQL - 字符串比较索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603176/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com