2013-07-26 2 views
11

쿼리를 실행하려고합니다 : SQLite에서 instr이 존재하지 않는다고 말하는 이유는 무엇입니까?

 
SELECT name 
FROM Foo 
WHERE instr(name, '@') = 0 AND instr(name, '.') != 0 

하지만 "no such such function : instr"오류가 발생합니다. 함수가 존재하므로 the website clearly states이기 때문에 혼란 스럽습니다. 누구가 무슨 일이 일어나는지 알아?

P. 나는 또한 같은 오류를주는 SQLiteSpy에서 쿼리를 시도했다.

+2

이 [3.7.15에서 추가] 한 (http://www.sqlite.org/changes.html() : 업그레이드가 옵션이 아닌 경우

은 또한 LIKE 연산자를 사용할 수 있습니다 12 월에 출시) - 어떤 버전을 실행하고 있습니까? –

+0

@MikeChristensen 아하! 나는 3.7.14.1을 사용하고있다. 감사! – chacham15

+0

너무 가까이! :) –

답변

17

Change History에 따르면, instr 기능은 버전 3.7.15에서 추가되었다 :

2012-12-12 (3.7.15)

Added the instr() SQL function.

당신이 최신 버전을 실행하고 있는지 확인합니다.

SELECT name 
FROM Foo 
WHERE name NOT LIKE '%@%' -- name does NOT contain @ 
AND name LIKE '%.%';  -- name DOES contain . 
+3

instr (x, y)는 y 문자열의 x 위치를 반환합니다. LIKE는 true 또는 false를 리턴합니다. 모든 용도에 대해 원격으로 동일하지 않습니다. – fyngyrz

+1

나는 그것들이 동등하다는 것을 암시하려는 것은 아니며, 단지 원래의 게시물에 설명 된 유스 케이스의 해결 방법이라는 것을 의미한다. –

관련 문제