【发布时间】:2010-04-05 04:08:18
【问题描述】:
假设我有一个字符串。
然后我有许多独特的标记或关键字,可能在数据库中很大。
我想搜索并找出我提供的字符串中的哪些数据库字符串(并获取它们的 ID)。
有没有办法使用查询来搜索提供的字符串或必须将其带到应用程序空间?
我认为这不是“全文搜索”是否正确? 最好的方法是将其插入数据库以使其成为全文搜索吗?
【问题讨论】:
标签: sql mysql postgresql search full-text-search
假设我有一个字符串。
然后我有许多独特的标记或关键字,可能在数据库中很大。
我想搜索并找出我提供的字符串中的哪些数据库字符串(并获取它们的 ID)。
有没有办法使用查询来搜索提供的字符串或必须将其带到应用程序空间?
我认为这不是“全文搜索”是否正确? 最好的方法是将其插入数据库以使其成为全文搜索吗?
【问题讨论】:
标签: sql mysql postgresql search full-text-search
看看
position(token in LongString) postgresql 函数Each 返回标记在 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?
【讨论】: