PHP, PDO 확장 및 MySQL을 기본 DBMS로 사용하고 있습니다. 또한 데이터베이스에 두 개의 id
및 tag
열이있는 준비된 태그 테이블이 있습니다.문자열에서 태그를 추출하는 방법
내 목적은 "태그 테이블에있는 문자열에서 자동으로 일치하는 태그를 추출"이고 내 문제는이를 수행하기 위해 PDO 쿼리를 만들고 있습니다.
예를 들어 문자열이 "비싸고 고품질 컴퓨터 하드웨어"인 경우 3 자 미만의 단어를 제거한 후 SELECT id FROM tags WHERE tag LIKE %Expensive%And%High%Quality%Computer%;
과 같은 검색어를 실행하면 "비싼"또는 "컴퓨터"와 같은 리터럴 태그는 절대로 실행되지 않습니다. 녹이다! 과 같은 쿼리를 실행해도 "고품질"또는 "비싼 하드웨어"와 같은 태그는 포함되지 않습니다.
이 쿼리는 각 문자열마다 한 번 실행되며이 경우 처리 시간은 중요하지 않습니다.
미리 감사드립니다. 내 잘못에 대해 사과드립니다. 당신이 태그 = '하드웨어'와 같은 단어를 정확한로 검색을 제한하고 쿼리에서
SELECT id FROM tags WHERE tag LIKE '%expensive%' OR tag LIKE '%and%' OR tag LIKE '%high%' OR tag LIKE '%quality%' OR tag LIKE '%computer%' OR tag LIKE '%hardware%';
:
그건 어떻게 % '작품들과 함께 'OR'을 묶는 것은 큰 데이터 세트에서 꽤 고통 스럽습니다. – tadman