我想在字段上進行全文搜索以匹配字符串的特定部分。考慮一個長字符串保存數組值如201 ::: 1 ### 193 ::: 5 ### 193 ::: 6 ### 202 ::: 6。 ###分隔數組元素和:::分開鍵=> val。現在我對匹配的理解是,它可以匹配布爾模式中的字符串部分。但是當我做mysql全文MATCH,反對
`SELECT
a.settings
, MATCH(a.settings) AGAINST('201:::1') as relevance
, b.maxrelevance
, (MATCH(a.settings) AGAINST('201:::1'))/b.maxrelevance*100 as relevanceperc
FROM
users_profile a
, (SELECT MAX(MATCH(settings) AGAINST('201:::1')) as maxrelevance FROM users_profile LIMIT 1) b
WHERE
MATCH(a.settings) AGAINST('201:::1')
ORDER BY
relevance DESC;`
表例如
CREATE TABLE users_profile
(
id
INT(11)默認爲NULL線的東西,
profile
文本,
views
INT(11)默認爲NULL ,
friends_list
text,
settings
text,
points
INT(11)默認NULL,
KEY id
(id
),
全文鍵settings
(settings
)
)ENGINE = MyISAM的默認字符集= UTF8;
我得到零結果。任何想法都歡迎。
顯示錶例子,並標出你whant被選定的字段,請。 – 2011-04-06 06:30:17
我已更新表結構。只有字段設置將被搜索 – mbouclas 2011-04-06 06:44:14
我認爲「:」是爲布爾搜索保留的。看看:http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ft_boolean_syntax並嘗試修改此設置。這可能有幫助。也可以看看本頁面中以「ft_」開頭的所有其他設置。 – eisberg 2011-04-06 06:47:09