好的,所以我运行此查询来计数,这是正确的:
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 |
+----------+
怎么可能呢?我在这里做错了什么?
最佳答案
这是因为您的files.refcount
列数据类型是TINYINT。将其更改为INT或任何其他合理的numeric type。