SQL - 在文本中查找完整的单词

时间:2011-04-20 14:14:41

标签: mysql sql

我在MySql DB中的一个表中有一个文本列。 我想获取文本列中具有特定单词的所有记录。 例如:

ID,BIO
1, "i am a cto"
2, "i am a cto/developer"
3, "cto"
4, "i am a cto_developer"
5, "ctools"

在这种情况下,当搜索“cto”时,我希望查询返回记录1,2,3,4而不是5。

任何想法?

P.S。我希望它不区分大小写

2 个答案:

答案 0 :(得分:3)

根据您使用的数据量,您可能需要考虑使用full text indexing。否则,您可以使用REGEXP来指定正则表达式来搜索单词。您应该see this question (and answer)使用REGEXP查找单词。

答案 1 :(得分:0)

使用LIKE operator。像这样:

select * from table1 where BIO LIKE '%cto%'  

'%'表示通配符(表示任何一组字符) 如果您只想查找以'cto'开头的记录,请使用:'cto%' 如果你只想要包含cto的记录作为一个完整的单词(即它周围有空格),请使用:

BIO LIKE '% cto %' or BIO LIKE 'cto %' or BIO LIKE 'cto %'  

(我添加的两个或者是'cto'出现在字符串开头/结尾的情况)