필드의 전체 텍스트 검색을 수행하여 문자열의 특정 부분을 일치 시키려고합니다. 201 ::: 1 ### 193 ::: 5 ### 193 ::: 6 ### 202 ::: 6과 같은 배열 값을 보유하는 긴 문자열을 생각해보십시오. ###는 배열 요소를 분리하고 ::: seperates key => val입니다. 이제 일치에 대한 나의 이해는 부울 모드에서 문자열의 일부와 일치 할 수 있다는 것입니다. 하지만 난mysql fulltext 일치, 일치
`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
텍스트,
settings
텍스트,
,210 points
INT (11)의 기본 NULL,
KEY id
(id
)
전체 텍스트 KEY settings
(settings
)
) ENGINE의 MyISAM = DEFAULT 문자셋 = UTF8;
결과가 0 점입니다. 어떤 아이디어라도 환영합니다.
표시 테이블 예제를 사용, 당신이 선택할 수 whant 필드를 표시합니다. –
테이블 구조로 업데이트했습니다. 필드 설정 만 검색됩니다. – mbouclas
부울 검색을 위해 ":"이 예약되어 있다고 생각합니다. http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ft_boolean_syntax에서이 설정을 수정하십시오. 도움이 될 것입니다. 또한이 페이지에서 "ft_"로 시작하는 다른 모든 설정을 살펴보십시오. – eisberg