разница между «что-нибудь» и «что-нибудь» в базе данных sqlite - PullRequest
0 голосов
/ 28 февраля 2012

В чем разница между «что-нибудь» и «что-нибудь» в базе данных sqlite?
Насколько я понял, одинарные кавычки используются для обозначения строк, в то время как двойные кавычки для ключевых слов.
Но я использовалcolumn_name="value" как условие where в запросе, и база данных принимает этот запрос.почему?
спасибо ..

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

с веб-страницы sqlite;

http://www.sqlite.org/lang_keywords.html

Если ключевое слово в одинарных кавычках (например, «ключ» или «глобус») используется в контексте, гдеИдентификатор разрешен, но если строковый литерал не разрешен, то токен понимается как идентификатор вместо строкового литерала.

Если ключевое слово в двойных кавычках (например, «ключ» или «глобус»)используется в контексте, где он не может быть преобразован в идентификатор, но где разрешен строковый литерал, тогда токен понимается как строковый литерал вместо идентификатора.

1 голос
/ 11 июня 2012

Действительно, остерегайтесь использования двойных «кавычек», если вы имеете в виду «буквальную строку»!Я был озадачен сегодня:

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'!Лучше избегайте двойных кавычек, если они вам не нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...