2013-07-26 14 views
11

私はクエリを実行しようとしています:なぜSQLiteはinstrが存在しないと言っていますか?

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

しかし、 "no such function:instr"というエラーが表示されています。関数が存在するので、the website clearly statesが混乱します。誰が何が起こっているのか知っていますか?

P.S.私も同じエラーを与えるSQLiteSpyでクエリを試してみました。

+2

を12月にリリースされました) - あなたはどのバージョンを実行していますか? –

+0

@MikeChristensen ah ha!私は3.7.14.1を使用しています。ありがとう! – chacham15

+0

とても近いです! :) –

答えて

17

Change Historyによると、instr機能は、バージョン3.7.15で追加されました:

2012-12-12 (3.7.15)

Added the instr() SQL function.

は、最新のリリースを実行していることを確認してください。

アップグレードができない場合は、あなたもLIKE演算子を使用することができます(これは、(http://www.sqlite.org/changes.html)[3.7.15で追加]た

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

私はそれらが同等であることを意味するわけではありません。元の投稿に記述されているユースケースの回避策です。 –

関連する問題