2012-08-06 93 views
0

我很熟悉SQLite。 我有一個很好的基本問題..爲什麼我不能選擇特定列等於零的行?SQLite SELECT語句,其中列等於零

的is_unwanted列的類型TINYINT(我SQLite中看到基本上意味着INTEGER

所以,我只有一個記錄在數據庫中(用於測試)。 當我嘗試

SELECT is_unwanted FROM 'urls' 

我得到的 「」()的結果,這是很好的,因爲該列包含實際數。

我試過=>

SELECT * FROM 'urls' WHERE is_unwanted = 0 

並沒有得到結果,但

SELECT * FROM 'urls' WHERE is_unwanted <> 0 

給我的結果。

我在做什麼錯?

+0

只是嘗試'SELECT * FROM urls WHERE is_unwanted IS NULL',看看是否返回任何東西。 – themanatuf 2012-08-06 19:08:40

+0

@themanatuf只是試了一下,沒有結果......但實際上列中包含數字0 .. – Andrej 2012-08-06 19:09:25

+0

在第一個SQL中,你有圍繞表名「urls」的單引號,但是你沒有在第二個/第三個查詢。你有沒有嘗試添加這些? – Taryn 2012-08-06 19:10:20

回答

1

嘗試運行

select '{' || is_unwanted || '}' from urls 

,看是否在數據庫中的值實際上是包含空格的字符串。

SQLite是一個動態類型的數據庫;當你指定TINYINT是一個提示(SQLite使用術語「親和力」)的列。您可以使用

select is_unwanted, typeof(is_unwanted) from urls 

可以查看這些值及其類型。

+0

這就是我回來的結果 - {} – Andrej 2012-08-06 19:20:43

+0

然後有一個空sting或NUL在字符串中(blob)。 – 2012-08-06 19:23:41

+0

我試過第二個陳述,它給了我2列..第一個包含數字「0」,第二個包含單詞「數字」 – Andrej 2012-08-06 19:26:22