我在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。我希望它不区分大小写
答案 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'出现在字符串开头/结尾的情况)