我的MySQL全文索引有问题,它将下划线视为单词的一部分(为什么?dunno)。这是我表中的字符串VA_-_Some_Album
这是对它的查询:
SELECT
*
FROM
`mytable`
WHERE
MATCH (`name`) AGAINST ('+Some* +Album*' IN BOOLEAN MODE)
ORDER BY `sdate` DESC
LIMIT 3
MySQL为此查询返回一个空集,除非我将其更改为+*Some*
,因为下划线是单词的一部分(_Some
而不是Some
)。这对我不好,因为当添加额外的星号(*)时,加号停止运行,我没有完成“AND”。
我试图更改charset定义,并重建全文索引,但没有。
有任何想法吗?改变字符串的存储方式并不取决于我。谢谢!
我对你的问题不是很清楚但是看看这里:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html
他们在布尔模式中解释_,+,*, - ,<>等之间的差异