我試圖運行查詢:爲什麼SQLite會說instr不存在?
SELECT name FROM Foo WHERE instr(name, '@') = 0 AND instr(name, '.') != 0
但我得到錯誤:「沒有這樣的函數:instr」。這使我困惑,因爲the website clearly states該函數存在。任何人都知道發生了什麼事?
P.S.我也嘗試了SQLiteSpy中的查詢,它給出了相同的錯誤。
我試圖運行查詢:爲什麼SQLite會說instr不存在?
SELECT name FROM Foo WHERE instr(name, '@') = 0 AND instr(name, '.') != 0
但我得到錯誤:「沒有這樣的函數:instr」。這使我困惑,因爲the website clearly states該函數存在。任何人都知道發生了什麼事?
P.S.我也嘗試了SQLiteSpy中的查詢,它給出了相同的錯誤。
按照Change History,在3.7.15版本添加了instr
功能:
2012-12-12 (3.7.15)
Added the instr() SQL function.
確保您運行的是最新版本。
如果升級是不是一種選擇,你還可以使用LIKE
操作:
SELECT name
FROM Foo
WHERE name NOT LIKE '%@%' -- name does NOT contain @
AND name LIKE '%.%'; -- name DOES contain .
instr(x,y)返回y的字符串的x中的位置。 LIKE返回true或false。對於所有用途甚至都不相同。 – fyngyrz
我並不是故意暗示它們是相同的,只是說它是針對原始文章中描述的用例的解決方法。 –
這是[加入3.7.15(http://www.sqlite.org/changes.html)( 12月發佈) - 你運行的是哪個版本? –
@MikeChristensen啊哈!我正在使用3.7.14.1。謝謝! – chacham15
噢這麼近! :) –