mysql匹配选择像hashtags,没有全文

时间:2016-08-03 01:47:38

标签: mysql regex

我无法通过全文设置ft_min_word_len,因为我使用网络托管。

数据库字段
hashtag - varchar(256)/ utf8_general_ci

数据库输入值示例
| #abc |
| #abc#123 |
| #123 |
| #abc#123 #abcd |
| #1234 | | #12345 |

我想搜索#123;#123'导致
| #abc#123 |
| #123 |
| #abc#123 #abcd |

PHP

$word = $mysqli->real_escape_string($_POST['word']);
mysqli_query($mysqli, "... where (p.hashtag REGEXP '^(.*?(\\\b$word\\\b)[^$]*)$' ) ... ");

我想要的不仅仅是systax。

  

添加评论
  数据库输入值更详细信息
  id |标题|描述|哈斯塔格| viewCnt ...
  1 | text1 | text0001 | #123 | 0
  2 | text2 | text0002 | #123 #abc | 0
  3 | text3 | text0003 | #12345 | 0
  ...

1 个答案:

答案 0 :(得分:0)

您应该修复您的数据结构,以便在您正在使用的表中为每个哈希标记值和id提供一行表。

但无论如何,你可以使用like

做你想做的事
select hashtag
from db
where concat(hashtag, '#') like concat('%', $search, '#%');