gpt4 book ai didi

postgresql - Postgres - 尽可能匹配搜索参数的开头

转载 作者:行者123 更新时间:2023-11-29 12:06:34 25 4
gpt4 key购买 nike

我有一个 postgres 表,其中包含大量不同长度的数字。例如,表格的第一列将如下所示:

  1. 1
  2. 12
  3. 13
  4. 134
  5. 135
  6. 136
  7. 1362
  8. 1363
  9. ...

我需要 postgres 返回尽可能多地匹配给定数字开头的行。例如,数字“1358302”需要匹配第 5 行(“135”),“1362304”需要匹配第 7 行(“1362”)。

我可以使用什么 SQL 来实现这一目标?

(数字还没有永久排序,所以如果为了简单/性能需要在整数或字符串之间切换数据类型,我仍然可以这样做!)

最佳答案

SELECT n
FROM your_table
WHERE n IN (
select $1/(10^i)::int8 from generate_series(0,floor(log($1))::int) i
)
ORDER BY n DESC
LIMIT 1

关于postgresql - Postgres - 尽可能匹配搜索参数的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com