문자열을 추가된 부분과 일치시키지만 다른 추가된 부분이 있으면 일치하지 않는 방법은 무엇입니까? 예를 들어, 이름 목록이 있고 이를 데이터베이스의 이름과 일치시켜야 하는 경우:
으아아아정확한 일치를 먼저 시도했는데 찾을 수 없으면 외부 이름 문자열 끝에서 문자를 계속 제거하고 내 데이터베이스와 일치하는 레코드가 하나만 있을 때까지 다시 일치를 시도합니다.
이 기술은 위 표의 첫 번째 및 세 번째 예와 일치하지만 문제는 프로그램이 전체 Mathew 단어가 제거될 때까지 매번 한 문자를 제거한 다음 일치하는 항목 하나를 찾기 때문에 두 번째 예에도 일치한다는 것입니다. 이 경우 잘못된 일치입니다.
완전히 일치하거나 일치하지만 한쪽에 이름의 추가 부분만 있고 둘 다 이름의 두 부분이 다른 경우 일치하지 않도록 제안합니다.
SQL이나 Python을 사용하여 이 문제를 해결할 수 있습니다.
도움을 주셔서 미리 감사드립니다.
P粉1455438722023-09-21 11:25:47
이것은 매우 비효율적이며 전체 테이블 스캔이 필요합니다.
으아아아ORDER BY
子句中的第一个表达式将首先对完全匹配进行排序,然后第二个表达式将对以整个搜索字符串开头的 name
进行排序,然后是以 name
로 시작하는 문자열을 검색하세요.
물론 SET @name_str = '...';
를 사용하는 대신 검색 문자열을 매개변수로 직접 전달할 수도 있습니다.
다음은 db<>fiddle의 몇 가지 예입니다.