Я выполняю поиск по тегам в такой таблице
CREATE TABLE permission (
id serial primary key,
tags varchar(255)[],
);
Затем я добавляю строку с тегами «исполнитель» и «по умолчанию».
Я хотел бы запросить его по тегам (используя построитель запросов knex ), поэтому, если я сделаю это:
async getByTags(tags: string[]): Promise<PermissionTable[]> {
return this.db<PermissionTable>('permission')
.select('*')
.whereRaw("tags @> '{??}'", [tags])
}
Это даст следующие утверждения в зависимости от того, сколько тегов вы передали .
Это работает
select * from "permission" where tags @> '{"artist"}';
Этого не происходит (возвращает пустой массив, когда следует строка, которую я ищу)
select * from "permission" where tags @> '{"artist", "event"}';
Почему тот, у кого несколько тегов, не работает?