sql - 作为字符串的整数比较

标签 sql postgresql comparison

我有一个整数列,我想查找以特定数字开头的数字。

例如,如果我查找“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/

相关文章:

algorithm - 如何获得两个图像之间的矩形差异区域?

python - 比较 2 个文件并提取不同的行

sql - 我是否比 SQL Server 更聪明,或者这是有原因的?

sql - TSQL 左连接且仅右起最后一行

sql - 如何从ef core中的sql获取sys.databases或sys.tables

r - 如何使用现有计数生成直方图?

mysql - PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 等价物是什么

mysql - 选择具有日期和文章点的行(无关系)

sql - Postgresql比较varchar和时间类型

r - 计算 R 中连续分布的 Anderson-Darling 检验统计量