我不知道如何做或者可以在查询中。? 可以用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
我想做的是
如果不清楚我试着解释我的问题,请让我修改或给你更多详细信息。
我的表与示例完全相同。评级字段具有文本数据类型。没有另一个评级表。
任何帮助都将非常感激。
谢谢你。
答案 0 :(得分:2)
您应该重新设计数据库结构并将评级值存储在另一个表中,例如,使用这样的结构
id | review_id | value
然后你就可以轻松完成所有这些事了。
如果无法进行此更改,您可能应该在PHP中执行此操作。我的意思是,您查询所有必要的数据,在数组中按ratings
展开,
并对数组执行操作。
但我强烈建议将评级转移到另一个表格中。
答案 1 :(得分:1)
选择评分行(SELECT * FROM Rating WHERE rid=YOUR_RID
)
以PHP(mysqli_fetch()
,PDOStatement->fetch()
等方式获取数据。)
对于转换字符串ratings
到数组使用explode
函数
要与数组交互,您可以使用foreach
周期。
$ sum = 0;
foreach($ array as& $ rating){
if($ rating< 4)$ rating = 4;
$总和+ = $等级;
}