2017-05-05 1 views
0

업데이트하고 싶은 긴 텍스트의 부분 스 니펫을 포함하는 텍스트 열이 있습니다.MySQL - 기존 부분 텍스트를 전체 텍스트와 대조

예를 들어, 열이 포함될 수 있습니다

을이 긴 텍스트 문자열이 계속입니다 ...

을 내가 함께 위를 교체 할 필요가로 :

이 정보는 더 많은 정보가 들어있는 긴 텍스트 문자열이며 데이터베이스에 저장해야합니다.

나는 다음 시도했다 :

SELECT * FROM database.table WHERE MATCH (column) AGAINST ('This is a long text string that contains a lot more information and should be stored in the database.' IN NATURAL LANGUAGE MODE);

을하지만, 텍스트의 이상 버전에있는 단어 중 하나 이상을 포함하는 많은 결과를 반환합니다. 긴 텍스트와 정확히 일치하는 단어 만 포함하는 기존 행을 어떻게 찾을 수 있습니까? 원래 스 니펫의 줄임표는 더 긴 문자열이 이전에 잘 렸기 때문에 의도적입니다. 잘린 텍스트 열이 고유 한 것으로 합리적으로 예상 할 수 있으므로 정확히 하나의 결과가됩니다.

편집

나는 단순히 긴 텍스트의 첫 번째 X 문자를 복용하고 기존 데이터에 대해 그것을 일치시켜이 문제를 해결했습니다. 이것은 각 행의 고유성 때문에 작동합니다.

+0

다른 방법은 % text % ...와 같거나 일치 함수에서 생성 된 점수를 읽은 다음 그 순서로 정렬하고 가장 가까운 사람이되어야하는 첫 번째 행을 취합니다 o 더 많은 단어와 일치하는 사람 . –

+0

시도했지만 점수가 다른 행보다 훨씬 낮았습니다. ( – btl

+0

찾을 값에만 '...'이 포함 되나요? 그렇다면 '% ... %'와 같은 열 – Degan

답변

0

끝까지 %text% 대신 %text을 사용하고 처음 20 자와 일치하도록 지정하여 일치 항목을 찾을 수 있습니다.

관련 문제