2012-04-02 2 views
0

MySQL 및/또는 PHP를 사용하여 다른 문자열에서 가능한 하위 문자열을 찾는 가장 좋은 방법은 무엇입니까?mysql을 사용하여 다른 문자열에서 가능한 하위 문자열 찾기

나는 내 목록의 이메일 목록을 읽고, 계산 된 우선 순위에 따라 점수 계산, 분류 및 표시를 위해 PHP를 사용하는 스크립트가 있습니다. 까다로운 부분은 내가 데이터베이스에서 확인해야 할 항목 목록을 가지고 있으며 전자 메일 제목의 항목을 내 '항목'테이블과 대조하려고합니다.

간단히 말해서 제목이 "LAST REMINDER FOR 2012 FIRST QUARTER DRAWS (OFFICIAL RELEASE)."이고 내 데이터베이스에 일치하는 주제가 "first quarter draws"이라고 가정 해 봅시다. 이 기록을 찾는 가장 좋은 방법은 무엇입니까?

이 기능이 있습니까? 또는 당신은 어떻게 이것을 할 것입니까? 수동으로 제목 줄을 단어로 분할하고 각 단어에 대해 쿼리를 실행 한 다음 가장 일치하는 ID로 정렬하는 방법에 대해서만 생각할 수 있습니다. 하지만 그것은 나에게 다소 복잡해 보이고 더 나은 해결책이나 이미 MySQL 기능으로 해결 된 것이 있어야합니다.

"비슷한 제목이있는 질문"제목을 이미 보았지만 내 하위 문자열을 알고 있다고 생각하기 때문에 도움이되지 않습니다.

SELECT * FROM table WHERE field LIKE '%first quarter draws%' 

답변

2

같은 조건이 문제를 해결해야

if(substr_count(strtolower($subject), strtolower($topic)) > 0){ 
return true; 
} 
return false; 
+0

죄송합니다,하지만이 잘못이고 내 질문에 대답하지 않습니다. 기본 mysql sytax에 대해 알고 있습니다. 그러나 여기에서 주요 문제는 내가 (아직) 서브 스트링 '1/4 분기를 알지 못한다'이다. 나는 2012 년 첫 번째 물음표 (공식 릴리스)에 대한 마지막 제목 만 가지고 있으며, "6 분의 1"레코드를 포함 할 수도 있고 그렇지 않을 수도있는 ~ 6000 개의 레코드가있는 테이블을 가지고 있습니다. 가장 적합한 항목을 찾으려면 어떻게해야합니까? – iHaveacomputer

+0

죄송합니다. 질문을 이해하는 데 어려움을 겪고 있습니다. 다시 읽으십시오. 전 텍스트 매치가 끝나고 관련성에 따라 정렬했다고 생각합니다 : http://devzone.zend.com/26/using-mysql-full-text-searching/ 주제 필드에 FULLTEXT 인덱스를 추가 할 수 있습니다 그것을 당신의 $ 제목과 비교하십시오. –

-1

이 시도 :

+0

정말 필요하지 않습니다. 모든 것을 가져온 후에 만 ​​수행 할 수 있습니다. http://us3.php.net/manual/en/function.strpos.php – Navarr

+0

그래,이 역시 도움이되지 않습니다. 내 질문보기 : "... 이미 비슷한 제목의"제목이있는 제목을 보았습니다.하지만 내 하위 문자열이 알려져 있다고 가정하기 때문에 도움이되지 않습니다. " – iHaveacomputer

관련 문제