基本SELECT无法找到条目

时间:2011-10-21 11:48:27

标签: sql sqlite select

我可能在这里犯了一个愚蠢的初学者错误,但SQL不是我的优点之一。

我正在尝试修改一个简单的SQLite数据库(在SQLite管理器中),但在我弄清楚为什么我不能让这个select语句返回之前似乎无法做到。

SELECT *
FROM facts
WHERE id = -9215979828305747000

没有错误,也没有返回任何内容,无论它是桌面上的第一个条目。我也试过

SELECT *
FROM facts
WHERE CAST(facts.id AS INTEGER) = CAST('-9215979828305747000' AS INTEGER)

再没有。

我在浏览窗口中看到了该值,但无法在特定搜索中获取该值。这是因为价值长度而发生的吗?

2 个答案:

答案 0 :(得分:1)

-9215979828305747000大于Int32(2147483647)的最大值,所以我猜facts.id不是整数。检查您的数据类型和CAST。

也许这是一个字符串?

SELECT *
FROM facts
WHERE id = '-9215979828305747000'

答案 1 :(得分:0)

我做了这个测试:

CREATE TABLE "test" (
    "id" INTEGER PRIMARY KEY NOT NULL,
    "name" TEXT
)

insert into test values (1, "tttt")
insert into test values (-9215979828305747000, "OO")


select name from test where id = -9215979828305747000'

> "OO"

所以它似乎在一个全新的表中工作。问题显然不在sql select或key或table定义中。

尝试将数据放在一些临时表中:

insert into table_copy values (select * from facts)