【发布时间】:2013-08-09 22:04:50
【问题描述】:
我正在使用 JDBC 创建一个数据库,其中包含表 Konten 和 HAUPTKONTO_1。两者都有一个名为 id 的整数列
这些是我创建和填充表的 SQL 语句:
CREATE TABLE "Konten"("id" "integer","typ" "string", "name" "string","ausgleichsDatum" "integer","wechselDatum" "integer", "beschreibung" "string" );
CREATE TABLE "HAUPTKONTO_1"("id" "integer","typ" "string","datum" "datetime","beschreibung" "string","wert" "numeric","summe" "integer" )
INSERT INTO Konten VALUES ('1', 'HAUPTKONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld')
INSERT INTO Konten VALUES ('2', 'KONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld')
INSERT INTO HAUPTKONTO_1 values( '1 ' , ' BUCHUNG ' , ' 01.01.2001 ' , ' meine erste Transaktion ' , ' 1 ' , ' 1 ' )
INSERT INTO HAUPTKONTO_1 values( '2 ' , ' BUCHUNG ' , ' 01.01.2002 ' , ' meine zweite Transaktion ' , ' 3 ' , ' 4 ' )
我正在尝试运行以下查询:
select * from HAUPTKONTO_1 WHERE id ='1'
或
select * from HAUPTKONTO_1 WHERE typ ='BUCHUNG'
或
select * from HAUPTKONTO_1 WHERE typ like 'BUCHUNG'
使用
dv.getStatement().executeQuery(befehl);
但我没有得到任何结果。
select * from HAUPTKONTO_1
select * from Konten WHERE id ='1'
这两个查询没有问题。
SQLite Databrowser 显示同样的问题:
它适用于 Firefox 中的 SQLite 管理器。
【问题讨论】:
-
这是一个英语网站。顺便说一句:
'1'是字符串文字,1是 SQL 中的数字。不要将苹果与橙子进行比较。where id = '1'将数字与字符串进行比较。尽管它可能看起来有效,但它并不是一种好的编码风格(其他 DBMS 可能会限制更多)