Zend-Db 2.9 - 带RAND命令的SQL

时间:2018-06-08 21:20:54

标签: zend-db

伙计们,我需要帮助,我正在使用zend-db 2.9 - 我有一个需要rand()命令的sql,但是这个查询的结果出错了 我的代码:

   $sql    = new Sql($this->dbAdapter);
   $select = $sql->select(
       ['a'=>$this->table]
   );

   $select->order("RAND() ASC");
   $select->limit(1);

   $stt = $sql->prepareStatementForSqlObject($select);
   $res = $stt->execute();

结果是:

SELECT `a`.* FROM `mytable` AS `a` ORDER BY `RAND``(``)` ASC LIMIT 1

如何解决?

1 个答案:

答案 0 :(得分:1)

我找到了答案:只需添加新表达式(“RAND()”)

    $sql = new Sql($this->dbAdapter);
    $select = $sql->select(
        ['a'=>$this->table]
    );

    $select->order([new Expression("RAND() ASC")]);
    $select->limit(1);

    $stt = $sql->prepareStatementForSqlObject($select);
    $res = $stt->execute();
相关问题