搜索字符串以查找表中哪些记录在所述字符串内

时间:2010-04-05 04:08:18

标签: sql mysql postgresql search full-text-search

说我有一个字符串。

然后我有许多独特的令牌或关键字,可能是数据库中的大量数字。

我想搜索并找出我提供的字符串中的哪些数据库字符串(并获取它们的ID)。

有没有办法使用查询来搜索提供的字符串,还是必须将其带到应用程序空间?

我认为这不是'全文搜索'吗? 最好的方法是将它插入数据库以使其成为全文搜索吗?

1 个答案:

答案 0 :(得分:0)

看看

  • position(token in LongString) postgresql的功能
  • instr(oken,LongString)函数用于mysql。

每个都返回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?