Как написать запрос для выбора элемента, который имеет идентификатор тега в массиве идентификаторов тегов с SQL? - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь создать запрос SQL с использованием PRESTO DATABASE для получения номеров билетов, к которым применен тег. Теги находятся в столбце ticket_tag, но в каждой строке столбца тега ticket есть массив всех идентификаторов тегов, которые есть у тикера. Я хочу отсканировать массив и убедиться, что в нем есть идентификатор тега, который я ищу, чтобы я мог выбрать или вернуть только те номера билетов. Может кто-нибудь помочь?

all_tickets_tags выглядит так:

[999170833505476,12403428395,12706673982,104100556289383,202231716456598,430869490433479,605189679499805,928941873813160]

они идентификаторы тегов.

SELECT ticker_number, ticket_tags
FROM ticket_activity
WHERE all_ticket_tags = 513515886108503

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Вы можете использовать содержит функцию.

contains(all_ticket_tags, 513515886108503)
0 голосов
/ 01 февраля 2020

Если массив - это просто строка, которую вы можете сопоставить с оператором SQL LIKE.

...
WHERE all_ticket_tags LIKE '%tag%'

В качестве альтернативы и правильнее, вы можете удалить массив или использовать функцию как contains, который специально построен для структуры массива, но это будет зависеть от фактического формата рассматриваемого поля.

...