sql查询或django字符串过滤器

fivyi3re  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(130)

假设给定字符串是'abcdefghijklmnop',我们数据库表有一个名为x的列,对于该列,行是:1- 'a' 2- 'abc' 3- 'absde' 4- 'abcdef' 5- 'abcdefg' 6- '1abcdefg'
它应该返回行号5

gtlvzcf8

gtlvzcf81#

在postgres中存在一个相似性函数,首先创建包含它的扩展

create extension pg_trgm;

之后,使用相似性百分比进行选择,如以下所示(例如80%或您所需的值)

select x from "table" where similarity('abcdefghijklmnop', x)>0.35;

或者最相似的字符串将被

select * from "table" order by similarity('abcdefghijklmnop', x) desc limit 1;

Fiddle网站上提供的信息。

8e2ybdfx

8e2ybdfx2#

我找到的最好的一个是:

SELECT id, 
FROM table        
WHERE '3552' LIKE prefix || '%'        
ORDER  BY prefix DESC        
LIMIT  1

谢谢大家

相关问题