1

私には、一生理解できない簡単なクエリがあります。

列「thread_id」と「messages」を持つテーブル(簡略化された)「messages」があります

また、それぞれから 10 件の結果が必要なスレッドのリストもあります。

$list = "1,2,3,4";

私はするだろう$db->select()->from("messages")->where("thread_id IN ('?')",$list)->limit(10);

ZF 1.11クエリメソッドで各thread_idのうち10をどのように行うのですか?

4

2 に答える 2

0

良い解決策ではありませんが、問題を解決し、サブSQLとユニオンを作成できます。

try{
    $db =  Zend_Db_Table::getDefaultAdapter();
    $sql=array();
    $idAry=explode(',',$list);
    for($i=0;$i<count($idAry){
        array_push($sql," SELECT * FROM ".$this->_name." where thread_id = ".$idAry[$i]." limit 10 ");
    }   
    $stmt = $db->query(implode(' union ',$sql););
    $result = $stmt->fetchAll();
    return $result;
}
catch(Exception $ex){
    print_r($ex);
    exit;
}
于 2013-09-23T03:19:38.860 に答える