奇数没有这样的列错误SQLite3

时间:2015-03-02 11:03:01

标签: sql sqlite

我只是开始用SQLite3学习SQL,所以这个问题可能有一个明确的答案,我无法想到。我有一个名为Books的表,其中包含以下列:名称,作者和价格。当我输入例如在sqlite3中select name, price from Books where author = "A";,它运行得很好。但是,当我使用以下内容创建.sql文件时:

 SELECT name, price
 FROM Books
 WHERE author = "A";`

并在同一个数据库中读取文件,它读取

 'Error: near line 1: no such column: "A"'

有什么想法吗?

编辑:我也尝试使用单引号(即' A'),但仍然会出现同样的错误:

Error: near line 1: no such column: 'A'

2 个答案:

答案 0 :(得分:1)

双引号"A"用作标识符;您想对单词引号'A'使用字符串文字。有关详细信息,请参阅documentation

SELECT name, price FROM Books WHERE author = 'A';

它在第一个例子中起作用的原因可能是由于:

  

如果在a中使用双引号中的关键字(例如:“key”或“glob”)   上下文,它无法解析为标识符,但在哪里   允许使用字符串文字,然后将标记理解为字符串   字面而不是标识符。

答案 1 :(得分:1)

我找到了解决方案。我正在使用Mac的TextEdit程序来编写SQL查询,它使用所谓的"智能引号",它们不被SQL识别为引号。所以我只是改变了智能报价设置,一切都很顺利。