【发布时间】:2017-07-13 07:40:37
【问题描述】:
如果我有一个表测试,其值如下:
id | value
----------------
1 | ABC 1-2-3
2 | AB 1-2-3-4-5
3 | ABC 1
4 | ABC 1-2
5 | ABC
我要输入的字符串是ABC 1-2-3-4-5,那么最接近的子字符串匹配(如果我可以这么称呼的话)应该是ABC 1-2-3。第 2 行不应该匹配,因为它没有“ABC”。如果输入字符串比实际记录短,我只能搜索字符串,但如果它更长,则不能。例如
select * from test where value ilike 'ABC 1-2%';
但这也没有给我一个确切的记录,而只是那些以 ABC 1-2 开头的记录。如何构造正确的 sql 语句来解决这个问题?
【问题讨论】:
标签: string postgresql pattern-matching