7

同様の質問がいくつかありますが、これをミックスに入れます。

基本的に、タイムスタンプ列 ( int ) があり、更新の 1 つはこのタイムスタンプ列のみを更新していて、ほとんど目立たない距離である場合があります。たとえば、1316631442 から 1316631877 に変更される場合があります。この 2 つの違いはあまりありません。

レコードが更新されているので、クエリを実行する前に phpMyAdmin をチェックインし、その後で違いを確認できます。ただし、影響を受ける行数に対して var_dump() を実行していますが、0 のままです。

同時に別の列を別の値に更新すると、影響を受ける行は 1 になります。

では、行が影響を受けるとトリガーするには何が必要でしょうか? アップデートが成功してから影響を受けていますが。

また、Laravel PHP フレームワークとそのクエリ ビルダーを使用しています。現在、何かがオフになっている可能性があるかどうかを確認するために、そこで少しデバッグを行っていますが、これまでのところすべてうまくいっているようです。

編集:申し訳ありませんが、上記の入力ミスがありました。別の列の値を完全に変更すると、影響を受ける行は 0 ではなく 1 になります。

4

2 に答える 2

3

好奇心旺盛な人のために、 INSERT INTO... ON DUPLICATE KEY UPDATE を使用して目的の結果を達成しました。MySQL がレコードが影響を受けていると報告しなかった理由をまだ理解できませんでした。

また、PHP mysql_query() および関連する関数を使用して、影響を受ける行を確認しようとしましたが、そのようにも機能しませんでした。おそらく、MySQL は、その変更がレコードを影響を受けるとマークする価値があるとは見なしていません。

于 2011-09-22T16:16:59.990 に答える