假设我正在运行一个小投票计数器产品。这些值存储在数据库“content”中,其中一行包含投票数(“count”),我还有一行称为“rank”,我如何自动调整这些值以便我不必迭代通过PHP中的每一个,导致脚本速度极慢?
答案 0 :(得分:2)
如果你在表格中有这样的结构
项 使用字段:name,id,count,...
你可以这样做:
在ID = $ id
的项目中进行投票UPDATE item SET count = count + 1 WHERE id='$id';
在ID = $ id
的项目中向下投票UPDATE item SET count = count - 1 WHERE id='$id';
count将存储总票数。
如果您想检查每个用户/ IP是否避免多次投票,您应该将每个投票存储在另一个表中,并在发送之前的查询之前检查此附加表是否有重复投票。
答案 1 :(得分:0)
这样的事情(取决于你确切的表格结构)应该有效:
UPDATE item SET rating =
(SELECT count(*) FROM rates WHERE type 'positive') -
(SELECT count(*) FROM rates WHERE type 'negative');
有关详细信息,请查看MySQL docs。