MySQL запрос в другом запросе - PullRequest
       28

MySQL запрос в другом запросе

0 голосов
/ 21 сентября 2011

Я использую плагин jQuery под названием DataTables , ( обработка на стороне сервера ). Проблема в том, что это ограничивает способ формирования запроса. Метод по умолчанию выглядит следующим образом.

$sQuery = "
    SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
    FROM   $sTable
    $sWhere
    $sOrder
    $sLimit
";

Можно ли использовать мой собственный сложный запрос (который может содержать предложение where, join и т. Д.), Все еще работая с этим ограничением? Мне нужно иметь возможность просто «вставлять» другой запрос в зависимости от ситуации, вместо того, чтобы каждый раз переписывать все это.

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

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

Ну, ваш сценарий должен возвращать список записей json, учитывая параметры запроса http:

  • filter (sSearch)
  • sorting (iSortCol_ *)
  • текущая страница (iDisplayStart & iDisplayLength)

Также необходимо вернуть количество общих записей после применения фильтра.

Как создать этот список на сторонних серверахзависит от вас, вы можете писать запросы так сложно, как вы хотите.

Один из способов разрешить более сложные запросы при одновременном минимизации стандартного кода состоит в том, чтобы обернуть функциональность примера в классе, но извлечь запросы выбора и подсчета в методы.Базовый класс будет возвращать запросы, как в вашем примере, но вы сможете переопределить это в подклассах и вернуть запросы настолько сложными, насколько вы пожелаете.Но вам нужно быть осторожным, чтобы учитывать параметры фильтра, сортировки и страницы при их генерации.

0 голосов
/ 21 сентября 2011

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

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