我有一个输入框,用户可以在其中输入关键字或 #tag 单词,单击搜索按钮后,它将找到具有该关键字或 #tags 的字段。
1.我尝试了%喜欢%它有效,但是如果仅搜索 #m 则它给了我所有带有m字母的单词。
2.我也尝试了正则表达式 像这样WHERE notes REGEXP '[[:<:]]{$f['activityId']}[[:>:]]'
但它不适用于 #tag 或其他符号。
3.我也使用全文搜索,但它不适用于符号
我从这里参考全文,我不想重新编译我的MySQL。
全文搜索
有没有办法用 #tag 和符号
搜索关键词比如:@amitesh,#amitesh,阿米特什等。
mysql> SELECT 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]';
+---------------------------------------------------------+
| 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]' |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
我认为#
和单词开始([[:<:]]
)不能很好地结合在一起。 所以,为了寻找@amitesh,#amitesh,amitesh
中的任何一个,我决定"单词开始或#或@"。