【发布时间】:2013-05-04 00:59:20
【问题描述】:
如何在 varchar 变量中搜索最长的匹配项?例如,表 GOB 有如下条目:
magic_word | prize
===================
sh| $0.20
sha| $0.40
shaz| $0.60
shaza| $1.50
我想编写一个 plpgsql 函数,该函数将字符串作为输入(例如shazam),并返回具有最长匹配子字符串的 GOB 行上的“奖品”列。在显示的示例中,那将是带有magic_word shaza 的行上的$1.50。
我能处理的所有函数格式,只是匹配位。我想不出一个优雅的解决方案。我猜这可能真的很容易,但我正在摸不着头脑。我不知道一开始的输入字符串,因为它将来自另一个表的查询结果。
有什么想法吗?
【问题讨论】:
-
brac 是否匹配 abrac?
-
不,它必须从一开始就匹配。选择错误的例子,我很抱歉。我更改了这个词以减少混淆。
标签: postgresql plpgsql