php - 查询或 PHP 中的 MySQL 更新和求和

标签 php mysql sql phpmyadmin sql-update

我不知道如何完成或是否有可能在查询中。? 可以用 PHP 完成吗?如果有任何想法或例子。

这里我有 2 个表。

评论

id    pid   published
--    ---   ---------
 1     12           0
 2     14           1
 3     16           1

评分

id   rid   ratings                 sum
--   ---   ---------------------   -------
 1     2   4,5,3,3,3.5,5,5,5,4,5   42.5000
 2     4   4,5,3,3,3.5,5,5,5,4,5   42.5000
 3     1   5,5,4,4,5,5,4,4,4,4     44.0000

我想做的是

  1. 根据 Review.id = Rating.rid 更新评分表
  2. 在找到 321 的地方更新评分字段更新为 4,例如 4、5、3 , 3, 3.5, 5, 5, 5, 4, 5 应该是 4, 5, 4, 4 , 4 , 5, 5, 5, 4, 5
  3. 基于更新评级字段 SUM 字段应自动更新评级值的总和。例如这个 42.5000 应该是 45.0000

我已尝试解释我的问题,如果不清楚,请让我修改或提供更多详细信息。

我的表格与示例完全相同。评级字段具有文本数据类型。没有其他评分表。

任何帮助将不胜感激。

谢谢。

最佳答案

您应该重新设计您的数据库结构并将评分的值存储在另一个表中,例如,使用这样的结构

id | review_id | value

然后你就可以轻松地完成所有这些事情了。

如果无法进行此更改,您可能应该在 PHP 中进行。我的意思是,您查询所有必要的数据,通过数组中的 分解 ratings,然后对数组执行操作。

但我强烈建议将评分移动到另一个表中。

关于php - 查询或 PHP 中的 MySQL 更新和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17026632/

相关文章:

php - 我什么时候应该关闭数据库连接?

PHP-Mysql查询: Display number of orders by day and store in variables

php - Docker 开发环境中 Localhost 连接被拒绝

php - 尝试将产品从 php session 链接到订单(id)

mysql - 如何根据其他记录的值更新字段

php - 通过 php 将数据插入 MySQL,并指定过期日期

sql - 创建连接别名 - 怎么做?

python - MySQLdb 和 _mysql 版本不兼容 : how to upgrade _mysql

sql - 如何在不使用 ROW_NUMBER() 的情况下模仿 ROW_NUMBER() 功能?

mysql - 更新 MYSQL 中现有的唯一键列