2017-11-23 2 views
1

데이터베이스 테이블에 'name', 'nameInASCII'라는 열이 있습니다. 어느 값을 가지고SQL의 ASCII 값을 비교하십시오

'SABARI DAS', 
'83 65 66 65 82 73 32 68 65 83' 

각각입니다. 입력 '이름'변수가 스왑 순서 (예 : DAS SABARI) 인 경우에도 위 행에 대한 쿼리를 작성하고 싶습니다. 그게 어떻게 가능해 ?

답변

1

마음에 오는 간단하고 빠른 옵션은 LIKE 연산자를 현명하게 사용하고 이름의 구성 요소를 별도로 검색하는 것입니다 (예 : 지금 우리가 주어진 이름과 성을 모두 검색 할 수 있습니다

CREATE VIRTUAL TABLE yourVirtualTable USING FTS5(name, nameInASCII); 
INSERT INTO yourVirtualTable (name, nameInASCII) 
VALUES 
    ('SABARI DAS', '83 65 66 65 82 73 32 68 65 83'); 

전체 텍스트 검색 설정으로이 충분히 구체적 않을 경우

SELECT * 
FROM yourTable 
WHERE name LIKE '%SABARI%' AND name LIKE '%DAS%'; 

, 다음 전체 텍스트 검색은 또 다른 옵션이 될 수 있습니다 같은 시간 : 검색어의 순서는 중요하지 않습니다 즉, 위의 쿼리의

SELECT * 
FROM yourVirtualTable 
WHERE yourVirtualTable MATCH 'SABARI AND DAS'; 

결과였다 우리가 DAS AND SABARI에 맞게 변경하지 않을 것입니다.

관련 문제