2011-03-27 7 views
2

만 부정 용어를 사용하여 SQLite는 매치를 수행 결과. 왜 match는 왜 non-negated term이 적어도 하나는 필요합니까? 이 제한을 해결하려면 어떻게해야합니까? 나는 "사과"와 일치하지 않는 모든 과일을 돌려 줄 필요가있다. 바로 그 것이다. 어떤 아이디어?내가 최근에 SQLite는 불가능하다는 것을 발견

+0

가'c' 태그 제거 . 처음에 왜 그곳에 있었습니까? ?!?!?!?! – pmg

+0

SQLite 용 네이티브 C API를 사용하고 있는데 문제가있는 경우를 대비하여 포함했습니다. 나는 당신이 그것을 제거하는 것을 좋아하지만 진정하십시오. –

+0

어쩌면 나는 물음표와 느낌표로 그것을 overdid :하지만 내 질문은 성실했다. 질문에 대한 답변은 왜 c가 관련성이 있는지 알면 더 나을 수 있습니다. 제안 : 해당 정보를 질문의 본문에 추가하십시오 (실제로 도움이된다고 생각되는 경우 C 태그) – pmg

답변

4

이런 식으로 뭔가가 작동합니다 :

SELECT * FROM fruit 
WHERE fruit.oid NOT IN 
(
    SELECT oid FROM fruit WHERE fruit MATCH 'apple' 
) 
0

왜 단순히 검색을 반전하지 않습니까?

select * from fruit except select * from fruit where fruit match 'apple'; 

을하지만 매우 효율적으로되지 않을 수 있습니다

select * from fruit where fruit NOT match 'apple' 

당신은 절을 제외하고 사용할 수 있습니다.

+0

구문이 작동하지 않습니다. SQL 논리 오류 또는 누락 된 데이터베이스 : 요청 된 컨텍스트에서 MATCH 함수를 사용할 수 없습니다. –

0

을 대신 'LIKE'사용할 수있는 옵션으로 :

SELECT * FROM fruit WHERE fruit NOT LIKE '%apple%'; 

또는 대소 문자 구분 :

SELECT * FROM fruit WHERE fruit NOT GLOB '*apple*'; 
관련 문제