Можно ли переписать этот оператор mySQL как предложение WHERE для Redbean ORM?

на основе Как я могу объединить эти операторы mysql У меня есть следующий рабочий оператор sql:

SELECT *, max(DUP_NUMBER) as dup FROM table1 where  CONTACTS=1 GROUP BY FIELD_A ORDER BY date LIMIT 3

Я использую ORM redbean http://redbeanphp.com/finding_beans , который использует объекты bean для представления ряды. Я хотел бы использовать специальный метод findAll, который требует, чтобы связанный запрос sql начинался с ключевого слова WHERE.

$all = R::findAll('needle',' where $sql ');

Это кажется маловероятным, но я решил, что спрошу, учитывая, что это ограничение все равно существует, чтобы переписать весь запрос выше в предложение WHERE SQL. что-то типа:

" WHERE  max(DUP_NUMBER) as dup  where  CONTACTS=1 GROUP BY FIELD_A ORDER BY date LIMIT 3 "

О «SELECT *» и «из таблицы» заботится R::findAll. Если это невозможно, я просто сделаю это другим способом.

Заранее спасибо,

Билл


person user1592380    schedule 10.04.2013    source источник


Ответы (1)


Если вы нажмете ссылку SQL Query на странице "Поиск компонентов", на которую вы ссылались, вы найдете пример извлечения компонентов. с пользовательскими запросами внизу:

$sql = 'SELECT author.* FROM author 
        JOIN club WHERE club.id = 7 ';
    $rows = R::getAll($sql);
    $authors = R::convertToBeans('author',$rows);

Итак, для вашего случая это может выглядеть примерно так:

$rows = R::getAll('SELECT *, max(DUP_NUMBER) as dup FROM table1 where  CONTACTS=1 GROUP BY FIELD_A ORDER BY date LIMIT 3');
$all = R::convertToBeans('needle', $rows);

предполагая, что 'needle' - это ваш тип bean-компонента.

person mensi    schedule 10.04.2013