我有一个输入框,用户可以在其中输入关键字或#tag单词,单击搜索按钮后,它将找到具有该关键字或#tags的字段。
1.我尝试了%like%的方法,但是如果只搜索#m,它会给我所有带有m字母的单词。
2.我也尝试过正则表达式
 像这样WHERE notes REGEXP '[[:<:]]{$f['activityId']}[[:>:]]'
但不适用于#tag或其他符号。
3.我也使用全文搜索,但不适用于符号
 我从这里引用全文,但我不想重新编译mysql。
Full text search

有什么方法可以用#tag和符号来搜索关键字
像:@ amitesh,#amitesh,amitesh等。

最佳答案

mysql> SELECT 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]';
+---------------------------------------------------------+
| 'foo #amitesh bar' REGEXP '([[:<:]]|#|@)amitesh[[:>:]]' |
+---------------------------------------------------------+
|                                                       1 |
+---------------------------------------------------------+


我认为#和单词start([[:<:]])不能很好地配合使用。因此,要查找@amitesh,#amitesh,amitesh中的任何一个,我决定使用“单词开始OR#OR @”。

关于php - 如何搜索关键字和主题标签或符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34998874/

10-11 02:23