Скажем, у меня есть строка.
Затем у меня есть ряд уникальных токенов или ключевых слов, потенциально большое количество в базе данных.
Я хочу найти и выяснить, какая из этих строк базы данных находится внутри строки, которую я предоставляю (и получить идентификаторы из них).
Есть ли способ использовать запрос для поиска в предоставленной строке или его следует перенести в пространство приложения?
Я правильно понял, что это не "полный текстовый поиск"? Будет ли лучший способ вставить его в базу данных, чтобы сделать полнотекстовый поиск?
посмотрите
position(token in LongString)
функция для postgresqlКаждый возвращает позицию маркера в LongString. Когда это положение > 0, вы имеете совпадение.
PostgreSQL:
select st.string, tt.token
from tokentable as tt
, stringtable as st
where position(tt.token in st.string) >0
MySQL
select st.string, tt.token
from tokentable as tt
, stringtable as st
where instrr(tt.token ,st.string) >0
Помните, что это будет медленным и голодным. Если вам нужно часто выполнять подобный подход, вы можете захотеть перепроектировать вашу БД.
Почему это отмеченные mysql и postgresql?