sqlite数据库中“任何东西”和“任何东西”有什么区别?
据我所知,单引号用于表示字符串,而双引号用于表示关键字
但是,我使用column_name="value"
作为查询中的where子句,数据库接受该查询。为什么呢?
感谢..
答案 0 :(得分:2)
来自sqlite网页;
http://www.sqlite.org/lang_keywords.html
如果在单引号中使用关键字(例如:'键'或' glob') 允许使用标识符但字符串文字所在的上下文 不允许,然后令牌被理解为标识符 字符串文字。
如果在双引号中使用关键字(例如:"键"或" glob") 上下文,它无法解析为标识符,但在哪里 允许使用字符串文字,然后将标记理解为字符串 字面而不是标识符。
答案 1 :(得分:1)
的确,如果你的意思是“文字字符串”,请注意使用双“引号”! 今天我很困惑:
sqlite> select * FROM words WHERE word = "id";
<nothing>
与
sqlite> select * FROM words WHERE word = 'id';
13556|id
架构:
sqlite> .schema
CREATE TABLE words (
id integer primary key,
word varchar(64)
);
由于存在名为id
的列,因此“id”在此处被解释为名为id
的列,而不是文字字符串“id”!如果您不需要双引号,最好避免使用双引号。