MySQL: LIKE의 역버전은 무엇입니까?
MySql의 LIKE 연산자는 다음과 같이 쿼리 텍스트가 포함된 행을 찾는 데 사용됩니다.
select name from user where name like "%john%"
돌아올 것입니다.John Smith,Peter Johnson기타.
반대로 쿼리 텍스트에 포함된 행을 찾으려면 어떻게 해야 합니까?예를 들어 나는 그것을 줍니다.John Smith and Peter Johnson are best friends그리고 이 문자열에서 찾을 수 있는 모든 이름을 저에게 찾기를 원합니다.
어떻게 하는 거지?
다음은 당신이 설명한 것을 달성할 수 있는 방법입니다.
SELECT name FROM user
WHERE 'John Smith and Peter Johnson are best friends' LIKE
CONCAT('%', name, '%')
select name
from users
where instr('John Smith and Peter Johnson', name) > 0
다음 방법 대신 이 방법을 사용합니다.
select *
from users
WHERE 'John Smith and Peter Johnson' LIKE CONCAT('%', name ,'%')
왜냐하면 만약 가능성이 있다면.name포함할 수 있습니다.%또는_문자(예: name='v%alue')를 입력하면 위 쿼리에서 해당 레코드를 계속 잘못 반환합니다.또한 열에 백슬래시 및/또는 "C 이스케이프 문자"가 포함될 수 있는 경우 이러한 문자도 이스케이프해야 합니다.이는 모두 MySQL 문자열 비교 함수에 설명되어 있습니다.예를 들어 아래 SQL은 1을 반환합니다.
SELECT 'val\%ue' LIKE CONCAT('%', 'al\\\\\%u' ,'%');
단일 백슬래시를 사용하여 탈출해야 했습니다.\\\\그리고%문자가 이스케이프되었습니다.\%.
이것은 텍스트 색인 문제입니다.제가 맞는다면, 여러분의 임무는 자유 형식의 텍스트에서 사람들에 대한 모든 참조를 찾는 것이며 좋아요 또는 싫어요와는 아무런 관련이 없습니다.
일반적인 형식에서 참조를 찾는 데이터베이스 테이블은 일부 텍스트 인덱싱 알고리즘에 대한 사전 역할을 합니다.이 사전을 사용하여 입력 문자열에 인덱스를 작성하면 일치하는 항목을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/472063/mysql-what-is-a-reverse-version-of-like
'programing' 카테고리의 다른 글
| 안드로이드 마시멜로 요청 권한? (0) | 2023.08.30 |
|---|---|
| 원격 호스트의 mysqdump (0) | 2023.08.30 |
| 사용자가 입력하는 시간 결정 (0) | 2023.08.30 |
| Pandas DataFrame 헤더에서 공백을 제거하려면 어떻게 해야 합니까? (0) | 2023.08.30 |
| Twitter 부트스트랩 툴팁에 여러 줄이 포함되도록 만드는 방법은 무엇입니까? (0) | 2023.08.30 |