0

わかりましたので、このクエリを実行してカウントを取得しました。これは正しいです。

mysql> select count(medias.fileRef) from medias where fileRef=20193621;
+-----------------------+
| count(medias.fileRef) |
+-----------------------+
| 135869 |
+-----------------------+

次に、これを実行して、そのカウントを別のテーブルに配置します。

mysql> update files set refCount=(select count(medias.fileRef) 
       from medias where fileRef=20193621) where id=20193621;

Query OK, 1 row affected, 1 warning (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 1

(medias.fileRef は files.id を含む INT であることに注意してください)、files.refCount にはその files.id を指すすべてのメディア行の合計数が含まれている必要があります。

それから私はそれをチェックしに行きます、そしてそれは間違っています。

mysql> select refcount from files where id=20193621;
+----------+
| refcount |
+----------+
| 127 |
+----------+

これはどうしてでしょうか?ここで何が間違っていますか?

4

1 に答える 1

4

これは、files.refcount列のデータ型がTINYINTであるためです。INT またはその他の適切な数値型に変更します。

于 2012-07-17T09:01:21.537 に答える