Quel est le moyen le plus simple et le plus simple de sélectionner le maximum d'une colonne à partir d'une table à l'aide de zend_db_table? Fondamentalement, je veux juste exécuter cette requête à Zend:
5 Réponses :
Vous pouvez exécuter directement sql, en utilisant mais si vous voulez la notation de l'objet, puis Vous feriez quelque chose comme ceci: p> $ db-> requis (); code> le vôtre serait simplement:
Vous devez utiliser zend_db_expr pour utiliser MySQL Fonctions:
return $this->fetchAll( $this->select() ->from($this, array(new Zend_Db_Expr('max(id) as maxId'))) ) );
Une autre solution est comme ceci: Si vous le faites comme ça, vous pouvez le modifier plus tard plus facilement !!! P> P>
Pour ceux qui cherchent à sélectionner simplement l'ID max à partir de leur colonne ID dans Zend Framework 2 (peut-être 3 aussi), mais obtenez cette erreur ...
Lors du traitement des données de clé primaire, un identifiant de clé connu n'a pas été trouvé dans le tableau de données p> blockQuote>
... Notez que vous aurez besoin d'alias
max (id) code> comme
ID code>. p>
Exemple à l'intérieur d'une table étendu à partir de la catégorie code> Classe: p>
xxx pré> p>
J'ai ajouté la version comme une balise à la question pour préciser.
$select = new Select(); $select->from('tablename'); $select->where(array('post_id', 1)); $select->columns(array('id' => new Expression('MAX(id)'))); $results = $this->getTableGateway()->selectWith($select);
Qu'en est-il d'une petite explication?