사람과 모든 연락처 정보를 나열하는 테이블이 있습니다. 나는 사용자가 테이블에 지능형 검색을 수행하기 위해 단순히 물건을 입력하고 각 용어가 입력 된 결과가 테이블의 열 중 적어도 하나와 일치하는 지 확인하고자합니다. 내가여러 테이블 열에서 여러 용어를 검색하려면 어떻게합니까?
SELECT * FROM contacts WHERE
firstname LIKE '%Bob%'
OR lastname LIKE '%Bob%'
OR phone LIKE '%Bob%' OR
...
같은 쿼리를 만들었을 시작하지만 지금은 별도로 먼저 마지막 이름을 검색 할만큼 똑똑하지 않기 때문에 그 완전히 '밥 젠킨스'같은 간단한에 실패 실현합니다. 내가해야 할 일은 검색어를 나누어 개별적으로 검색 한 다음 각 용어의 결과를 어떻게 든 교차시키는 것입니다. 적어도 그것은 저에게 해결책 같이 보인다. 그러나 그것에 대해 가장 좋은 방법은 무엇입니까?
나는 fulltext와 MATCH() ... AGAINST()에 대해 들었지만 오히려 퍼지 검색처럼 들리지만 설치하는 것이 얼마나 많은 작업인지 모르겠다. 합리적인 수행으로 정확한 예 또는 아니오 결과를 원합니다. 검색은 약 20 열 120,000 행으로 수행되어야합니다. 사용자가 2 ~ 3 개 이상의 단어를 입력하지 않기를 바랍니다.
오, 죄송 합니다만, MySQL (및 PHP)를 사용하고 있습니다.
전 텍스트 검색을 알아 냈습니다. 얼마나 엄격한지를 조정할 수있는 방법이 있습니까? LIMIT는 얼마나 잘 일치하는지에 관계없이 결과를 잘라냅니다. 그러나 이것은 전체 텍스트 인덱스를 필요로하고 내 웹 사이트는 뷰를 사용하고 뷰를 올바르게 인덱싱 할 수 없습니까? 그래서 ...
어떤 데이터베이스를 사용하고 있습니까? 각각은 다른 기능과 기능을 제공하므로 도움이됩니다. – Oded