我有一个整数列,我想查找以特定数字开头的数字。
例如,如果我查找“123”,它们会匹配:
1234567
123456
1234
它们不匹配:
23456
112345
0123445
在进行字符串比较之前,将整数转换为字符串是处理任务的唯一方法吗?
此外,我还在数字上使用 Postgre regexp_replace(text, pattern, replacement),这是非常缓慢且效率低下的方式。
情况是我有大量数据要以这种方式处理,我正在寻找最经济的方式。
附言。我不是在寻找如何将整数转换为字符串的方法。
最佳答案
您是否在值的开头寻找匹配项? 您可以像这样创建一个函数索引:
CREATE INDEX my_index ON mytable(CAST(stuff AS TEXT));
它应该被你的 LIKE 查询使用,但我没有测试它。
关于sql - 作为字符串的整数比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2507299/