gpt4 book ai didi

mysql - 有什么方法可以相对快速地使用 WHERE 部分中的函数进行查询吗?

转载 作者:行者123 更新时间:2023-11-29 08:44:07 25 4
gpt4 key购买 nike

让我们使用一个包含 id、name 和 UCId 列的 Companies 表。我正在尝试查找 UCId 的数字部分与某些数字字符串匹配的公司。

UCId 通常看起来像 XY123456,但它们是用户输入,并且用户似乎真的很喜欢在其中留下随机空格,有时甚至根本不输入 XY,并且他们希望保持这种方式。我的意思是我无法强制执行标准模式。他们希望以自己的方式输入,并以自己的方式阅读。所以我不得不使用我的 where 部分中的函数。

有没有办法让这些查询在 mysql 中不会花费太长的时间?我知道要使用什么函数等等,我只需要一种方法来使搜索至少相对快速。我可以使用已应用于 UCId 的函数创建自定义索引吗?

仅供引用我想使用的查询示例

SELECT * 
FROM Companies
WHERE digits_only(UCId) = 'some_digits.'

我只想补充一点,Company 表通常有数万行,在某些情况下需要重复运行查询,这就是我需要快速解决方案的原因。

最佳答案

不幸的是,MySQL 没有基于函数(一般来说,表达式)的索引(如 OraclePostgreSQL )。一种可能的解决方法是向 Companies 表添加另一列,该列实际上将由标准化值(即 digits_only(UCId))填充。该列可以在您的代码中或通过在 INSERT/UPDATE 上设置的数据库触发器进行管理。

关于mysql - 有什么方法可以相对快速地使用 WHERE 部分中的函数进行查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976176/

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