Почему не работает этот SQL запрос?

Почему это работает:

SELECT * FROM table WHERE ID=1

А это - нет:

SELECT * FROM table WHERE key='value'

Колонки: ID, key, value


Ответы (1 шт):

Автор решения: vegasmoscow

Table является зарезервированным словом MySQL. Чтобы ваш запрос выполнился, необходимо везде table взять в обратные кавычки `table`.

Посмотрите в тренажёре: https://www.mycompiler.io/view/Ak1jn0rTG9r (нажмите RUN для запуска компилятора).

Вообще, лучше избегать в именовании столбцов таблиц и самих таблиц зарезервированных слов, их довольно много. Смотрите здесь: http://www.mysql.ru/docs/man/Reserved_words.html

И уберите кавычки у 'value', если вы ищете только те строки, в которых значения key и value совпадают.

Ваш запрос должен выглядеть так:

SELECT * FROM `table` WHERE key = value;

Или даже так:

SELECT * FROM `table` WHERE `key` = `value`;

Если это не сработает, попробуйте заменить имя таблицы на mytable, например.

→ Ссылка