我有一个包含数千条记录的表per_1
我正在寻找的是做一个从右到左的SELECT匹配最相似的数字,无论它们是否在每个字符串的末尾都处于混乱状态,我不使用喜欢''因为它会与我正在寻找的完全相反。
表per_1
id permutation
1 00021478200123456789
2 14782297690213564987
3 02897452205987425631
最后9个数字是相同的,只有它们是无序的,我需要一个查询,精确地返回那3列或所有类似的,最后包含123456789,无论它们在每个末尾的顺序如何链
我不需要LIKE''因为它会返回完全相同的行,而我所寻找的是最相似的终止,而不是确切的终止。
我在Windows 10中有一个Postgresql 9.4
感谢您的帮助。
答案 0 :(得分:0)
您可以将该字符串拆分为字符数组并进行比较。
Select Permutation
From per_1
Where regexp_split_to_array(permutation, '') @> regexp_split_to_array('45022003', '')
如果使用表达式
创建GIN / GiST索引,则可以加快速度create index per_1_split_idx ON per_1 USING gin(regexp_split_to_array(permutation, ''));