#mysql #sql
#mysql #sql
Вопрос:
Этот запрос практически идентичен рабочему примеру, который мне показали:
SELECT * FROM entities.entities
WHERE entities.entities.id =
(SELET MAX(entities.entities.id) FROM entities.entities);
Этот запрос был намного проще изначально, но я добавлял имена баз данных и таблиц повсюду, просто чтобы быть уверенным в безупречности запроса.
Выдает не очень полезную ошибку:
Ошибка SQL (1064): у вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘MAX (id) FROM entities)’ в строке 3
Я убедился, что у меня MySQL версии 5 , я убедился, что подзапрос является скалярным подзапросом, то есть он возвращает только один столбец с одной строкой и поддерживается в разделе WHERE запроса.
Я не вижу в этом ничего плохого.
Введите экспертов!
Комментарии:
1. Кроме отсутствующего
C
вSELET
?
Ответ №1:
Ваш код должен читать:
SELECT * FROM entities.entities
WHERE entities.entities.id =
(SELECT MAX(entities.entities.id) FROM entities.entities);
(Вы неправильно написали «SELECT» как «ВЫБРАТЬ».)
Комментарии:
1. Из всех простых и предотвратимых опечаток… ВЫБРАТЬ? Я недооценил хороший ночной сон.
2. Да, как будто мы никогда этого не делали? БЕСЧИСЛЕННОЕ количество раз? 😉 Бывают редкие случаи, когда копирование и вставка (если это возможно) помогают, возможно, это был один из них. Приветствия!
Ответ №2:
Попробуйте это:
SELECT * FROM entities.entities
WHERE entities.entities.id =
(SELECT MAX(entities.entities.id) FROM entities.entities);
Ответ №3:
Вы неправильно написали select:
ВЫБЕРИТЕ * ИЗ entities.entities, ГДЕ entities.entities.id = (ВЫБЕРИТЕ MAX (entities.entities.id ) ОТ entities.entities);
Ответ №4:
Да, сначала обязательно проверьте свой код.
SELECT * FROM entities.entities
WHERE entities.entities.id =
(SELECT MAX(entities.entities.id) FROM entities.entities);
ВЫБЕРИТЕ —> ВЫБРАТЬ
С уважением