我有一个输入框,用户可以在其中输入关键字或#tag字词,点击搜索按钮后,它会找到包含该关键字或#tags的字段。
1.我试过%喜欢它有效但是如果只搜索#m它会给我所有带有m个字母的单词
我也试过正则表达式
像这样WHERE notes REGEXP '[[:<:]]{$f['activityId']}[[:>:]]'
但它不适用于#tag或其他符号
3.我也使用全文搜索,但它不适用于符号
我在这里提到全文,我不想重新编译我的mysql
Full text search
有没有办法用#tag和符号
搜索关键字
比如:@ amitesh,#amitesh,amitesh等。
答案 0 :(得分:1)
mysql> SELECT 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]';
+---------------------------------------------------------+
| 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]' |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
我认为#
和单词start([[:<:]]
)并不能很好地融合在一起。所以,为了寻找@amitesh,#amitesh,amitesh
中的任何一个,我决定开始#或者#Or @&#34;。