【发布时间】:2018-11-17 15:14:57
【问题描述】:
我有一个相当大的地点列表,其中许多有多个名称。我想对它们进行模糊搜索。
将所有名称连接成一个字符串还是将它们全部放在一个数组中更好?
串联
--table definition
CREATE TABLE places_concat(
id serial,
name varchar(200),
all_names varchar(10000),
...
);
--sql query
select name from places where 'kugluktuk' % all_names;
数组
--table definition
CREATE TABLE places_array(
id serial,
name varchar(200),
all_names text[],
...
);
--sql query
select name from places where 'kugluktuk' % any(all_names);
(我使用带有pg_trgm 扩展名的postgres 10,所以% 模糊匹配字符串。
【问题讨论】:
标签: sql postgresql string-matching