我在PostgreSQL数据库中有一个表格,其中有四列包含越来越详细的信息(思考状态 - >城市 - >街道 - >数字),以及一列中根据一些简单格式化规则。示例:列式自动完成
| kommun | trakt | block | enhet | beteckning |
| Mora | Gislövs Läge | 9 | 16 | Mora Gislövs Läge 9:16 |
| Mora | Gisslaved | * | 8 | Mora Gisslaved 8 |
| Mora | Gisslaved | * | 9 | Mora Gisslaved 9 |
| Lilla Edet | Sanda | GA | 1 | Lilla Edet Sanda GA:1 |
Web服务使用此表实现逐字自动完成,其中用户在向下钻取时获取输入建议。的mora gis
输入将导致
["Mora Gislövs", "Mora Gisslaved"]
目前,这是由该查询通过分词串联的柱进行:
select distinct trim(substring(beteckning from '(^(\S+\s?){NUMPARTS})')) as bet
from beteckning_ac
where upper(beteckning) like upper('mora gis%')
order by bet
凡NUMPARTS
在输入单词的数量 - 2这个案例。
现在我想自动完成做逐列,而不是字为单位的,所以mora gis
现在会导致这个:
["Mora Gislövs Läge", "Mora Gisslaved"]
由于前两列可包含文字任意数量的,我不能再使用输入来确定在响应中包含多少列。有没有办法做到这一点,或者我可能已经完成了这个自动完成业务的全部错误?
您可以将输入分割为多个字段。例如,你输入kommun的东西,你可以在那里自动完成,等等。 –
@BenH好主意。不幸的是,客户端中只有一个输入字段,这是我的手中。 – aznan