sql >> データベース >  >> RDS >> Mysql

Zend_Db_Tableを使用して一度に複数の行を更新することは可能ですか?

    通常はupdate()を使用するため、質問が頻繁に行われることはありません。 多数のレコードを同じ値に設定するか、1つのレコードを多くの異なる値に設定します。

    これを回避する1つの方法は、更新を集約することです。したがって、配列を使用して、2011年のすべてのIDを取得し、これを実行します。

     $where = array();
    
     // This where should contain all the ids that need the year set to 2011
     // E.g.
     $where[] = array("id" => 3);
    
     $db->update("table_name", array("year" => 2011), $where);
    

    これを行うと、同じ年の行が多数あると仮定して、クエリの数を減らすことができます。このドキュメントは、こちら です。 。

    または、メソッドこのように

    OP応答後に編集

    問題の本質は、効率的に解決できないことを意味します。

    非常に異なるデータセットで3,700行のデータを更新する方法を求めています。データのセットが異なる場合、これを効率的にするために利用できるパターンはありません。同じ年の行などのパターンを見つけてそれを有利に使用すると、クエリの速度が向上しますが、配列マッシングの形で頭脳を活用する必要があります。 regileroが指摘したように。



    1. 親/子オブジェクトが同時に永続化されている場合に、Hibernate + Spring JPA構成で外部キー値を設定するにはどうすればよいですか?

    2. Delphi-使用するMySQLの最高のデータ対応コンポーネント

    3. PostgreSQLでのRadians()関数のしくみ

    4. phpを使用してmysqlに最後に挿入されたIDを見つける最良の方法