Почему мне нужно каждый раз определять имя таблицы в предложении WHERE? - PullRequest
0 голосов
/ 17 апреля 2020

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

например, это команда, которая работала на моем компьютере

SELECT COUNT(*) FROM camera WHERE stored=3;

, когда я пытаюсь выполнить ее на моем сервере, вот результат

1064 - 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 'stored=3' at line 1

но этот работает

SELECT COUNT(*) FROM camera WHERE camera.stored=3;

есть ли способ восстановить его без необходимости определения имени таблицы?

1 Ответ

4 голосов
/ 17 апреля 2020

Сохранено является MySQL зарезервированным словом, поэтому MySQL думает, что вы собираетесь использовать это зарезервированное слово.

Если вы укажете его в качестве имени таблицы, то оно знает, о чем вы говорите.

ОБНОВЛЕНИЕ: Вы можете переносить сохраненные тики назад (как показано ниже), чтобы они воспринимались как текст, а не как зарезервированное слово.

SELECT COUNT(*) FROM camera WHERE `stored`=3;
...