mysql:3857
From: "Kawai,Takanori" <"Kawai,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Thu, 28 Jun 2001 12:31:52 +0900
Subject: [mysql 03857] Re: update した件数をカウントしたい。
川合孝典です。 ----- Original Message ----- From: "Akihiko Shinohara" <sino@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Thursday, June 28, 2001 11:02 AM Subject: [mysql 03853] Re: updateした件数をカウントしたい。 > 篠原です。 (中略) > DBI::MySQL のマニュアルを注意深く読んでいると > > 影響のあった行(Changed)を調べるには、 > > $sth->rows > > 探した行(Matched)を調べるには、connectのdata_sourceに、 > mysql_client_found_rowsを真にして設定し > # DBI:mysql:database=$database;host=$host;mysql_client_found_rows=1 > 同じく、$sth->rows で、返ってくるようです。 perldocからちょっと長いですがその部分を引用すると... <引用> mysql_client_found_rows Enables (TRUE value) or disables (FALSE value) the flag CLIENT_FOUND_ROWS while connecting to the MySQL server. This has a somewhat funny effect: Without mysql_client_found_rows, if you perform a query like UPDATE $table SET id = 1 WHERE id = 1 then the MySQL engine will always return 0, because no rows have changed. With mysql_client_found_rows however, it will return the number of rows that have an id 1, as some people are expecting. (At least for compatibility to other engines.) By default this flag is disabled. However, you can enable it by default, when installing the Msql-Mysql-modules with perl Makefile.PL --config --mysql-use-client-found-rows make make install </引用> まさに、そのまんまのことが書いてありますね。 設定すれば、デフォルトにすることもできるとありますし。 > ここから質問です。 > 今まで気にしてませんでしたが、他のデータベースでは、 > どっちを返すのでしょう。クライアント的には、 > Matchedの行を返してもらったほうが便利なような気がします。 いちいち確かめたわけではありませんが、上記の引用にもあると おり、どちらかといえばMatchedの行数を返すケースのほうが 多いような気がします。 #「(At least for compatibility to other engines.)」との #ことですし ただDBIのrowsの定義はrowsメソッドの説明にある <引用> Returns the number of rows affected by the last row affecting command </引用> ということだけだと思いますし、実装のガイドラインである DBI::DBDでも特に説明があるわけでもありません。ですので 実装者の「解釈」によってバラつきがあるかもしれません。 (少なくともmysqlにはあったわけですし(^^)) ============================================== 川合 孝典 (Hippo2000) kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx http://member.nifty.ne.jp/hippo2000 http://www.hippo2000.net/ DBI日本語メーリングリスト管理人、 Kansai.pm所属 ==============================================
3845 2001-06-27 19:00 [MAO <mao@xxxxxxxxxx>] update した件数をカウントしたい。 3846 2001-06-27 19:31 ┗[TSUTSUMI Thoru <tutu] 3848 2001-06-27 22:41 ┗[MAO <mao@xxxxxxxxxx>] 3852 2001-06-28 10:31 ┣[TSUTSUMI Thoru <tutu] 3856 2001-06-28 12:17 ┃┗["Kawai,Takanori" <GC] 3853 2001-06-28 11:02 ┗[Akihiko Shinohara <s] -> 3857 2001-06-28 12:31 ┗["Kawai,Takanori" <GC] 3860 2001-06-28 16:46 ┗[MAO <mao@xxxxxxxxxx>] 3861 2001-06-28 17:36 ┗[TSUTSUMI Thoru <tutu]