让我们看一个包含列 id、name 和 UCId 的表 Companies。我正在尝试查找其 UCId 的数字部分与某些数字字符串匹配的公司。
UCId 通常看起来像 XY123456,但它们是用户输入,用户似乎真的很喜欢在其中留下随机空间,有时甚至根本不输入 XY,他们希望保持这种状态。我的意思是我不能强制执行标准模式。他们想以自己的方式进入它,并以自己的方式阅读它。所以我不得不在 where 部分中使用函数。
有没有办法让这些查询在 mysql 中不会花费太长时间?我知道要使用哪些功能以及所有这些,我只需要一种方法来使搜索至少相对较快。我可以以某种方式使用已应用于 UCId 的函数创建自定义索引吗?
仅供参考我想使用的查询示例
SELECT *
FROM Companies
WHERE digits_only(UCId) = 'some_digits.'
我将补充一点,Company 表通常有数万行,在某些情况下查询需要重复运行,这就是我需要快速解决方案的原因。