Есть ли ошибка в запросе mysql?
Почему phpMyAdmin говорит в этом запросе
SELECT *, cards.id AS id FROM cards WHERE 1
Error: #1060 Дублирующееся имя столбца 'id'
Но с желтым треугольничком, обычной ошибки при этом не показывает, выводит неверное число строк запроса.
При этом запрос выполняет, показывает результат
При выполнении запроса в коде php все нормально и проблем никаких не видно.
Я так понимаю, что * уже содержит поле id и второй раз назначать ему алиас некорректно. Насколько это критично и нужно ли переделывать все подобные запросы?
***
На самом деле там более сложный запрос
SELECT *, cards.id AS id FROM cards JOIN table2 ON cards.id=table2.cards_id WHERE ......
Но в table2 тоже есть поле id
То есть это нужно, чтобы $res['id'] был именно id из нужной таблицы
Просто в проекте много такого, проблем никогда не видел. А тут phpmyadmin с числом строк косячит...
Дополнительно:
А в чем вообще смысл иметь два одинаковых поля?
Удалите звезду. Вместо неё перечислите нужные поля, и при необходимости присвойте им алиасы.
Ответы:
По большому счету это не варнинг а ошибка. Так что переделайте
А то получится
(result['id'] != result['id']) == true
-
А то получится
(result['id'] != result['id']) == true
Исключено.
- Вы бы скинули полный запрос, чтобы мы не гадали
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы определить, есть ли ошибка в запросе MySQL, необходимо внимательно проанализировать сам запрос и убедиться, что он соответствует синтаксису языка SQL.
Ниже приведены некоторые общие ошибки, которые могут возникнуть в запросах MySQL, и способы их исправления:
1. Ошибка в синтаксисе SQL: Проверьте, что все ключевые слова, имена таблиц и столбцов, а также операторы правильно написаны. Например, если вы забыли поставить запятую между столбцами в операторе SELECT, это может вызвать ошибку.
2. Ошибка в именах таблиц и столбцов: Убедитесь, что все имена таблиц и столбцов правильно указаны и совпадают с их именами в базе данных.
3. Ошибка в типах данных: Проверьте, что типы данных, которые вы используете в запросе, соответствуют типам данных столбцов в базе данных.
4. Ошибка в условии WHERE: Убедитесь, что условия в операторе WHERE правильно сформулированы и соответствуют вашим требованиям.
Пример:
SELECT * FROM users WHERE age > 18;
Если после внимательного анализа запроса вы не нашли ошибок, попробуйте выполнить его в среде разработки или консоли MySQL для получения более подробной информации об ошибке. Также не забывайте обработать возможные исключения и ошибки, чтобы ваше приложение не завершалось аварийно при выполнении запроса к базе данных.