我只是开始用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'
答案 0 :(得分:1)
双引号"A"
用作标识符;您想对单词引号'A'
使用字符串文字。有关详细信息,请参阅documentation。
SELECT name, price FROM Books WHERE author = 'A'
;
它在第一个例子中起作用的原因可能是由于:
如果在a中使用双引号中的关键字(例如:“key”或“glob”) 上下文,它无法解析为标识符,但在哪里 允许使用字符串文字,然后将标记理解为字符串 字面而不是标识符。
答案 1 :(得分:1)
我找到了解决方案。我正在使用Mac的TextEdit程序来编写SQL查询,它使用所谓的"智能引号",它们不被SQL识别为引号。所以我只是改变了智能报价设置,一切都很顺利。