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 回答