说我有一个字符串。
然后我有许多独特的令牌或关键字,可能是数据库中的大量数字。
我想搜索并找出我提供的字符串中的哪些数据库字符串(并获取它们的ID)。
有没有办法使用查询来搜索提供的字符串,还是必须将其带到应用程序空间?
我认为这不是'全文搜索'吗? 最好的方法是将它插入数据库以使其成为全文搜索吗?
答案 0 :(得分:0)
看看
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?