Исключение SQL с 'from' в качестве имени столбца - PullRequest
1 голос
/ 05 сентября 2011

У меня есть таблица со столбцом с именем «от». Я хочу извлечь из него данные, поэтому я попытался выполнить следующий запрос.

select title,from,grade from localcourses where title='new';

Но я получаю следующее исключение из-за имени столбца 'from'.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from,grade from localcourses where title='new'

Как можно избежать этого, не переименовывая имя столбца? Спасибо.

Ответы [ 6 ]

3 голосов
/ 05 сентября 2011

Если вы используете MySQL в стандартном (ANSI) режиме, используйте двойные кавычки, чтобы "экранировать" ключевое слово:

select title,
       "from",
       grade 
from localcourses 
where title='new';

Если вы работаете с MySQL в нестандартном режиме (который по-прежнему используется по умолчанию, если я не ошибаюсь), вам нужно использовать ужасные обратные пометки MySQL:

select title,
       `from`,
       grade 
from localcourses 
where title='new';
3 голосов
/ 05 сентября 2011

Попробуйте -

select `title`,`from`,`grade` from localcourses where `title`='new';
2 голосов
/ 06 сентября 2011

Я буду первым, кто скажет это - вам следует избегать именования таблиц, столбцов, триггеров, процедур, функций и т. Д. С именами зарезервированных, экшн и других часто используемых слов в синтаксисе sql и механизма базы данных. Это только создает путаницу, так обстоит дело здесь.

2 голосов
/ 05 сентября 2011

В MySQL вы можете использовать `(обратный апостроф - слева от клавиши 1 на клавиатуре). Используйте

`from`.
1 голос
/ 05 сентября 2011

В mySQL вам необходимо заключить столбец from в символ обратной черты

select title,`from`,grade from localcourses where title='new'

Я подозреваю, что используемый вами символ обратного тона неправильный, я не уверен, какой тип клавиатуры у вас, поэтому он может не посылать правильный символ.

Попробуйте вместо этого.

select title,localcourses.from,grade from localcourses where title='new'

и посмотрите, поможет ли это

1 голос
/ 05 сентября 2011

Предполагая, что Oracle попытается

select title,"from",grade from localcourses where title='new';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...