Синтаксическая ошибка MySQL 4.0.18 при использовании GROUP BY - PullRequest
1 голос
/ 13 января 2010

У меня есть сайт управления проектами, работающий на PHP и MySQL. Но я не тот человек, который его разработал, поэтому мне сложнее понять, в чем проблема. Поэтому я перешел к переполнению стека.

Когда я пытаюсь отсортировать список объектов, сервер MySQL выдает мне исключение, говоря:

"У вас есть ошибка в вашем синтаксисе SQL. Проверьте правильность синтаксиса для руководства, соответствующего вашей версии сервера MySQL, рядом с 'GROUP BY company_id' в строке 10".

Поэтому я искал во всем исходном коде «GROUP BY company_id» и обнаружил одно вхождение, которого, во-первых, не было в строке 10, а во-вторых, я не увидел в этом ничего плохого.

Эта строка выглядела так:

$sql .= " GROUP BY company_id
          ORDER BY $orderby";

$rows = db_loadList( $sql );

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

Любая информация будет принята с благодарностью. Спасибо,

Влад

Ответы [ 2 ]

0 голосов
/ 14 января 2010

так что я разобрался с проблемой. это не было на самом деле проблемой SQL. Проблема была вызвана тем, как была построена строка запроса. Я понял, что в начале строки запроса было два знака вопроса вместо одного (то есть «??»). По какой-то причине SQL-сервер жаловался на синтаксис. Но все равно спасибо всем за ваши усилия.

Удачи,

Vlad

0 голосов
/ 13 января 2010

Если бы мне пришлось предсказать проблему, я бы предположил, что $orderby был пуст или недействителен. Кроме того, перед фрагментом, который вы показываете, было другое предложение GROUP BY (или ORDER BY, или HAVING).

Вывести SQL - весь оператор.

Если проблема не очевидна, добавьте ее к своему вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...