我无法通过全文设置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
...
答案 0 :(得分:0)
您应该修复您的数据结构,以便在您正在使用的表中为每个哈希标记值和id提供一行表。
但无论如何,你可以使用like
:
select hashtag
from db
where concat(hashtag, '#') like concat('%', $search, '#%');