찾다

 >  Q&A  >  본문

Python을 사용하여 문자열을 추가된 부분과 일치하지만 추가된 부분이 다른 경우 일치하지 않는 방법

문자열을 추가된 부분과 일치시키지만 다른 추가된 부분이 있으면 일치하지 않는 방법은 무엇입니까? 예를 들어, 이름 목록이 있고 이를 데이터베이스의 이름과 일치시켜야 하는 경우:

으아아아

정확한 일치를 먼저 시도했는데 찾을 수 없으면 외부 이름 문자열 끝에서 문자를 계속 제거하고 내 데이터베이스와 일치하는 레코드가 하나만 있을 때까지 다시 일치를 시도합니다.

이 기술은 위 표의 첫 번째 및 세 번째 예와 일치하지만 문제는 프로그램이 전체 Mathew 단어가 제거될 때까지 매번 한 문자를 제거한 다음 일치하는 항목 하나를 찾기 때문에 두 번째 예에도 일치한다는 것입니다. 이 경우 잘못된 일치입니다.

완전히 일치하거나 일치하지만 한쪽에 이름의 추가 부분만 있고 둘 다 이름의 두 부분이 다른 경우 일치하지 않도록 제안합니다.

SQL이나 Python을 사용하여 이 문제를 해결할 수 있습니다.

도움을 주셔서 미리 감사드립니다.

P粉676588738P粉676588738435일 전711

모든 응답(1)나는 대답할 것이다

  • P粉145543872

    P粉1455438722023-09-21 11:25:47

    이것은 매우 비효율적이며 전체 테이블 스캔이 필요합니다.

    으아아아

    ORDER BY 子句中的第一个表达式将首先对完全匹配进行排序,然后第二个表达式将对以整个搜索字符串开头的 name 进行排序,然后是以 name로 시작하는 문자열을 검색하세요.

    물론 SET @name_str = '...';를 사용하는 대신 검색 문자열을 매개변수로 직접 전달할 수도 있습니다.

    다음은 db<>fiddle의 몇 가지 예입니다.

    회신하다
    0
  • 취소회신하다