Я работаю в java и postgresql.
У меня есть одно имя таблицы «видео», а одно из полей в нем - имя «video_name», поэтому имя видео может содержать значения #tag, например, ex.извлекать только связанные значения хэштегов из имени в функции поиска
- мой любимчик звезда
#tom
- пользуются выходные
#friends#party
Masti - обедали
#seefood
с#friends
- прогулка с
#friendsEnjoy
так что теперь в этом случае я хочу, чтобы поиск по этому поле 'video_name' только с хэштегами. если я ищу #friends, я получу номер 2,3 видео.
я хотел бы знать, каким должен быть запрос в этом случае
я попытался с помощью запроса
select * from videos where video_name ilike '%#Friends'
но это не дает мне точные результаты.
Я также попытался использовать этот запрос
select * from videos where video_name ~* '#friends'
но с использованием выше запроса я получил 3 результаты 2,3,4. и я хочу только 2 & 3.
/******************************* ANSWER ***** ******************************/
Ниже представлен ответ на этот вопрос. спасибо @Alex видео, которые включают хэштег с пространством впереди строки и снова новый #tag впереди этой строки.
SELECT *
FROM videos
WHERE lower(video_name) SIMILAR TO '%#friends(\s%|\#%)?'
Это не работает в postgresql. – Kamini
@ Kamini проверить обновленный ответ – Alex
вы проверили мой обновленный вопрос. в результате чего я исключаю. В соответствии с вашим ответом сначала это чувствительно к регистру, а затем, если я использовал ilike для удаления чувствительности к регистру, все равно я не получаю результат, который, как я полагаю, должен иметь. Спасибо за ваш ответ :) – Kamini