Mysql与数字关键字匹配

时间:2015-01-06 09:20:56

标签: mysql full-text-search keyword numeric

我使用mysql全文索引。 我发现它不能将关键数字与“1,2,3”或“1 2 3”中的“1”匹配。 我使用此查询“SELECT * FROM users u where match(u.leader_uids)against('1'IN BOOLEAN MODE);”

如何解决这个问题? 非常感谢!

2 个答案:

答案 0 :(得分:0)

我提供的例子希望它能为你效用我认为

MATCH (field) AGAINST ('+856049' IN BOOLEAN MODE)

答案 1 :(得分:0)

仅适用于4位或更多数字的单词。因此,在保存前,必须在leader_uid中连接一些前缀。示例:

CREATE TABLE mytable(
    id INT NOT NULL KEY AUTO_INCREMENT,
    myfield TEXT,
    FULLTEXT KEY ix_mytable (myfield)
);

INSERT INTO mytable (myfield) VALUES 
    ('id_1 id_2 id_3'),
    ('id_8'),
    ('id_4 id_1');

SELECT * FROM mytable 
    WHERE MATCH(myfield) AGAINST ('+id_1' IN BOOLEAN MODE);

-- will select rows 1 and 3

您可以在mysql config中更改单词所需的最小字符数: https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_min_token_size