我正在做的是使用此查询查询数据库:
Select * From nutrition Where ID=2
当它是数据库中的自动增量列时,它表示“列名称ID不存在”。
然后我尝试了不同的东西。
Select * From nutrition Where desc="s"
它说“列名”“不存在”。
为什么它会选择“s”而不是desc?
答案 0 :(得分:1)
在第二种情况下,"s"
不是字符串;标识符包含在SQL中的"
中。使用单引号。 (并避免使用desc
,因为它是关键字。)
SELECT * FROM nutrition WHERE "desc" = 's'
至于你的第一个查询...... ID
确实不存在。你有没有正确的套管?
答案 1 :(得分:1)
至于剩下的第一个问题,我的有根据的猜测是你引用了列名"ID"
。创建表格或查询时。 "ID"
与ID
或id
或"id"
不同,因为在Postgres中,不带引号的标识符会转换为小写。
Read the chapter "Identifiers and Key Words" in the manual to understand.