我是SQLite的新手。 我有一个可靠的基本问题..为什么我不能选择特定列等于零的行?
is_unwanted列的类型为TINYINT
(我在SQLite中看到的基本上是INTEGER
)
所以,我在数据库中只有一条记录(用于测试)。 当我尝试
SELECT is_unwanted FROM 'urls'
我得到“ 0 ”(零)的结果,这很好,因为该列包含实际数字 0 。
我试过=>
SELECT * FROM 'urls' WHERE is_unwanted = 0
没有结果,但是
SELECT * FROM 'urls' WHERE is_unwanted <> 0
给我结果。
我做错了什么?
答案 0 :(得分:2)
尝试运行
select '{' || is_unwanted || '}' from urls
查看数据库中的值是否真的是包含空格的字符串。
SQLite是一个动态类型的数据库;当您指定TINYINT
时,该列是一个提示(SQLite使用术语“affinity”)。你可以使用
select is_unwanted, typeof(is_unwanted) from urls
查看其类型的值。
答案 1 :(得分:0)
你可以尝试:
SELECT * FROM urls WHERE coalesce(is_unwanted,'') = ''