现有数据表T里面的字段“A”,A的值通常为:“12,123,312,1212” 形式。T中已有数据10W条。
需要查询出A中含有单独"12"的记录~
比如:
"123,125,1212,1234,312" 不含有单独的一个"12" 不要
"1,18,123,1212,321,312" 不含有单独的一个"12" 不要
"1,12,123,1212,321,312" 含有单独的一个"12" 要
...
我有2种查询方法,感觉有点繁琐~ 一个是CONCAT,一个是LIKE OR
问问大家有没有更高效的方法,拜谢~
可以考虑给字段A添加全文索引,使用进行全文检索:
需要注意的是:
MySQL5.6.4的 innodb_ft_min_token_size 的默认值为3.
MyISAM的 ft_min_word_len 的默认值为4.
如果你要索引的最小长度是2,那就要在my.cnf配置:
innodb_ft_min_token_size=2
ft_min_word_len=2